Du weißt jetzt, wie Du Branches erstellen, mergen und löschen kannst. Wir schauen uns jetzt noch ein paar recht nützliche Tools für die Arbeit mit Branches an.
Das Kommando git branch
kann mehr, als nur Branches zu erstellen oder zu löschen. Wenn Du es ohne weitere Argumente ausführst, wird es Dir eine Liste mit Deinen aktuellen Branches anzeigen:
$ git branch
iss53
* master
testing
Das *
vor dem master
-Branch bedeutet, dass dies der gerade ausgecheckte Branch ist. Wenn Du also jetzt einen Commit erzeugst, wird dieser in den master
-Branch gehen. Du kannst Dir mit git branch -v
ganz schnell für jeden Branch den letzten Commit anzeigen lassen:
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes
Mit einer weiteren nützlichen Option kannst Du herausfinden, in welchem Zustand Deine Branches sind: welche der Branches wurden bereits in den aktuellen Branch gemergt und welche wurden es nicht. Für diesen Zweck gibt es in Git die Optionen --merged
und --no-merged
. Um herauszufinden, welche Branches schon in den aktuell ausgecheckten gemergt wurden, kannst Du einfach git branch --merged
aufrufen:
$ git branch --merged
iss53
* master
Da Du den Branch iss53
schon gemergt hast, siehst Du ihn in dieser Liste. Alle Branches in dieser Liste, welchen kein *
voransteht, können ohne Datenverlust mit git branch -d
gelöscht werden, da sie ja bereits gemergt wurden.
Um alle Branches zu sehen, welche noch nicht gemergte Änderungen enthalten, kannst Du git branch --no-merged
aufrufen:
$ git branch --no-merged
testing
Die Liste zeigt Dir den anderen Branch. Er enthält Arbeit, die noch nicht gemergt wurde. Der Versuch, den Branch mit git branch -d
zu löschen schlägt fehl:
$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.
Wenn Du den Branch trotzdem löschen willst – und damit alle Änderungen dieses Branches verlieren – kannst Du das mit git branch -D testing
machen.