Sie können den Zweig löschen, ihn jedoch zuerst markieren, damit der Verlauf nicht verschwindet. Auf diese Weise wird der Zweig nicht in der Zweigliste angezeigt, was hoffentlich die Leute davon abhalten sollte, daran zu arbeiten, aber die Arbeit wird nicht dauerhaft gelöscht (selbst nachdem die Speicherbereinigung ausgeführt wurde). Wenn ich beispielsweise einen Zweig habe, der irrelevant geworden ist, aber nicht bereit ist, ihn dauerhaft zu löschen, markiere ich ihn als "Archiv / < Zweigname >".
Während auf master
oder einem anderen Zweig:
git tag archive/foo foo
git branch -D foo
Dadurch wird vor dem Löschen ein Tag mit dem Namen archive/foo
aus dem foo
Zweig erstellt foo
. Sie können dem Tag auch eine Nachricht hinzufügen, die erklärt, was sich in der Verzweigung befindet, warum es existiert, warum es jetzt eine Sackgasse ist usw.
git tag -m 'Foo is deprecated in favor of bar' archive/foo foo
Die Möglichkeit aufzuzeichnen, warum ein Zweig veraltet ist, ist möglicherweise ein Vorteil des Markierens gegenüber dem Verschieben von Zweigen in einen alternativen Namespace.
Wenn Sie jemals einen Zweig wiederbeleben müssen, der auf diese Weise archiviert wurde, ist dies so einfach wie:
git branch foo archive/foo
git tag -d archive/foo # Optional
Jetzt ist der Zweig zurück, als wäre er nie gelöscht worden.
--tags
Option aufgit push
):<branch-to-delete>
gedrückt und dann der Remote-Zweig gelöscht wird (mithilfe der Referenzspezifikation beim Push). Zum Beispiel:git tag archive/foo foo; git branch -D foo; git push --tags origin :foo
Git-Zweige werden als Verweise auf eine Revision gespeichert. Wenn Sie den Zweig löschen, wird die Referenz entfernt. Wenn nichts anderes auf diese Revision verweist, wird es schließlich Müll gesammelt. Wenn Sie den Zweig löschen, ist er ordnungsgemäß entfernt (aus Ihrem Repository). Wenn Sie einen Zweig als veraltet markieren möchten, ihn aber für die spätere Verwendung beibehalten möchten, können Sie den Zweig in ein Unterverzeichnis verschieben:
Alternativ können Sie ein separates Repository für veraltete Zweige erstellen, diese ziehen und dann aus dem Original löschen. In beiden Fällen sind alle Benutzer betroffen, die den Zweigen folgen. Der Inhalt ihres Repositorys ändert sich nicht (und auch keiner der Zweignamen). Wenn sie jedoch versuchen, erneut zu ziehen, werden sie dies tun müssen ihr Ziel in ihrer Konfiguration ändern.
quelle
git branch -D <branchName>
löscht Ihren Zweig aus dem Repository. Sie können es nicht mehr sehen oder navigieren. Außerdem verlieren Sie alle in diesem Zweig vorgenommenen Dateiänderungen.https://git-scm.com/docs/git-branch
quelle
Es kann nicht über den Git-Zweig navigiert werden, und bis die Garbage Collection durchgeführt wird, geht es nicht aus dem Repository verloren.
Wenn Sie den betreffenden Zweig als Sackgasse markieren möchten, tun Sie dies einfach (git tut dies möglicherweise nicht für Sie, aber Sie können es auf jeden Fall)!
Beschriften Sie es (wie Sie es bevorzugen) als historisches Nachschlagewerk.
quelle