Best Practices mit Git

Mit der Option –all pusht M. alle lokalen auf ihre entsprechenden Remote Branches. Die Option –tags stellt sicher, dass auch die gesetzten Tags übertragen werden, was standardmäßig nicht der Fall ist. Der Push war also erfolgreich, und alle Teammitglieder können auf den von M. gelieferten Bugfix zugreifen. Ein Release vom stable-release Branch kann in das Produktivsystem veranlasst werden.

Zuletzt fällt M. jedoch noch auf, dass der Bugfix Branch ebenfalls unnötigerweise übertragen wurde. Da der Branch bereits reintegriert wurde, kann dieser beruhigt gelöscht werden, um eine Branch-Müllhalde zu vermeiden.

#delete remote branch
git push origin :bugfix-4711
To ../central_git_repo/
  [deleted]         bugfix-4711

Der Befehl zum Löschen eines Remote Branches ist ein wenig gewöhnungsbedürftig, macht aber Sinn, wenn man sich die Syntax genauer betrachtet. Die Syntax des push-Befehls sieht (vereinfacht) folgendermaßen aus:

git push 

Der Parameter <repository> wurde schon zuvor definiert und gibt an, auf welches Repository gepusht werden soll (in M.s Fall das Repository mit dem Namen origin). Der Parameter <refspec> ist schon interessanter und hat (ebenfalls vereinfacht) das Format <src-branch>: <dest-branch>. Hiermit kann angegeben werden, welcher lokale Branch (src-branch) auf welchen entfernten Branch (dest-branch) gepusht werden soll:

git push origin master:master

Daraus lässt sich jetzt auch sehr einfach herleiten, wieso die Refspec für das Löschen des Bugfix Branches das Format :Bugfix-4711 hat. Vereinfacht könnte man interpretieren, M. schiebt einen „leeren“ Branch auf das entfernte Repository und „überschreibt“ einfach den dort vorhandenen Branch.

Nachdem M. den entfernten Branch gelöscht hat, zeigt ein kurzer Check aber, dass der Branch lokal immer noch vorhanden ist:

git branch
  bugfix-4711
  master
* stable-release
  next

Um diesen zu löschen macht M. Folgendes:

git branch -D bugfix-4711
Deleted branch bugfix-4711 (was 039b68c)

Ein kleiner praktischer Hinweis, hätte jemand anders den entfernten Branch gelöscht, hätte M. diesen immer noch in der Liste der Remote Branches gesehen. Diese werden nicht automatisch entfernt. Um aufzuräumen und alle Referenzen auf nicht mehr vorhandenen Remote Branches lokal zu löschen, macht M. regelmäßig Folgendes:

git remote prune origin

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.