Ich hatte zwei Zweige: master
et branch1
. Ich habe gerade verschmolzen branch1
zurück in master
und ich bin fertig mit diesem Zweig. Sollte ich ihn löschen oder ihn einfach liegen lassen? Führt das Löschen zu einem Verlust von Daten?
Antworten
Zu viele Anzeigen?Nach der Zusammenführung können Sie den Zweig sicher löschen:
git branch -d branch1
Außerdem warnt git Sie (und weigert sich, den Zweig zu löschen), wenn es denkt, dass Sie ihn noch nicht vollständig zusammengeführt haben. Wenn Sie einen Zweig zwangsweise löschen (mit git branch -D
), die noch nicht vollständig zusammengeführt ist, müssen Sie einige Tricks anwenden, um die nicht zusammengeführten Commits zurückzubekommen (siehe unten).
Es gibt jedoch einige Gründe, einen Zweig in der Nähe zu behalten. Wenn es sich zum Beispiel um einen Funktionszweig handelt, möchten Sie vielleicht in der Lage sein, Fehlerkorrekturen an dieser Funktion noch in diesem Zweig durchzuführen.
Wenn Sie die Verzweigung auch auf einem entfernten Rechner löschen möchten, können Sie dies tun:
git push origin :branch1
Oder das Äquivalent dazu:
git push -d origin branch1
Dadurch wird der Zweig auf der Gegenstelle zwangsweise gelöscht (dies wirkt sich jedoch nicht auf bereits ausgecheckte Repositories aus und hindert niemanden mit Push-Zugriff daran, den Zweig erneut zu pushen/erstellen).
git reflog
zeigt die zuletzt ausgecheckten Revisionen an. Jeder Zweig, den Sie in der jüngsten Repository-Historie ausgecheckt haben, wird dort ebenfalls angezeigt. Davon abgesehen, git fsck
ist das Mittel der Wahl, wenn es in Git zu einem Commit-Verlust kommt.
Ich bevorzuge RENAME statt DELETE
Alle meine Zweige sind in der Form von
Fix/fix-<somedescription>
oFtr/ftr-<somedescription>
o- usw.
Wenn ich Tower als Git-Frontend verwende, organisiert es ordentlich alle Ftr/
, Fix/
, Test/
usw. in Ordnern.
Sobald ich mit einem Zweig fertig bin, kann ich umbenennen sie zu Done/...-<description>
.
Auf diese Weise sind sie immer noch vorhanden (was praktisch sein kann, um eine Historie zu erstellen), und ich kann immer zurückgehen, wenn ich weiß, was es war (Funktion, Korrektur, Test usw.).