Interessanterweise hat noch niemand die Verwendung von Verzweigungen erwähnt.
Zweige sind eine gute Möglichkeit, den Stamm gesund zu halten und gleichzeitig ständig zu kontrollieren, was man gerade tut, ob er kaputt ist oder nicht. Stellen Sie sich das so vor, dass Sie eine neue Zeitlinie für den Code abzweigen. Die primäre Zeitlinie (der Stamm) tuckert vor sich hin und funktioniert immer; die Zweige können jeden beliebigen Zustand annehmen, ohne den Stamm zu beeinflussen.
Das erlaubt Ihnen, früh und oft zu committen, ohne sich Gedanken darüber machen zu müssen, ob Sie es jemand anderem vermasselt haben, und garantiert Ihnen, dass Sie nie einen "Ich bin zu weit gegangen und kann das nicht mehr rückgängig machen"-Moment haben, wenn Sie etwas Neues entwickeln, oder einen "Oh Gott, ich habe eine Woche verloren"-Moment, wenn Ihre lokale Festplatte sterben sollte. (Es versteht sich von selbst, dass Ihr Repository an einem Ort liegen sollte, von dem regelmäßig ein Backup erstellt wird!)
Sobald Ihr Code funktioniert, können Sie den Zweig wieder mit dem Stamm zusammenführen, und der Stamm erhält nun Ihren neuen Code; neue Zweige aus dem Stamm erhalten nun den gesamten aktuellen Code.
Das ist der große Reiz von Git für viele: Es ist wirklich einfach zu verzweigen und zusammenzuführen, was es sehr einfach macht, einen neuen Zweig oder sogar Zweige von Zweigen zu erstellen, wann immer sie gebraucht werden. Auch CVS kann Verzweigungen und Zusammenführungen durchführen, obwohl es wesentlich umständlicher ist.