Ich möchte nicht, dass 82 Feature-Zweige herumhängen , also frage ich mich, was die möglichen Nachteile sind, wenn ich den Feature-Zweig einfach lösche, sobald ich ihn zum Master zusammenführe.
Arbeitsablauf:
git co -b feat-xyz
hack hack
git ci
hack some more
git ci
git co master
git merge feat-xyz
smoke test
git br -d feat-xyz
Irgendwelche Probleme hier?
git
version-control
branch
bstpierre
quelle
quelle
git reflog
. DannAntworten:
Löschen nach dem Zusammenführen ist der übliche Weg. Aus diesem Grund wird
git branch -d yourbranchname
überprüft, ob der Zweig vollständig zusammengeführt ist, bevor er gelöscht wird.Es gibt einige Gründe, die ich mir vorstellen kann, um einen Zweig zu behalten: Vielleicht möchten Sie daran festhalten, falls Fehler auftreten, sobald sie in Produktion gehen, oder Sie möchten eine historische Aufzeichnung.
In beiden Fällen haben Sie die Möglichkeit, den Kopf des Zweigs zu markieren, bevor Sie ihn löschen. Ein Tag ist insofern wie ein Zweig, als es ein Zeiger auf ein Commit ist, mit Ausnahme einiger kleinerer Unterschiede: 1) Porzellan zeigt normalerweise keine Tags in Erkundungsbefehlen wie git show-branch oder tab-auto complete in checkout an. 2) Wenn Sie eines auschecken, werden Sie in einen getrennten (nicht ref) HEAD versetzt. 3) Sie können eine " Tagging-Nachricht " hinterlassen , die bewirkt, dass das Tag wie ein Commit als Objekt im Objektspeicher gespeichert wird.
Auf diese Weise behalten Sie den Verlauf bei, und falls Sie jemals eine Fehlerbehebung benötigen, empfehle ich, nur eine neue Verzweigung des Masters für die Fehlerbehebung zu erstellen.
quelle
Ich lösche nach dem Zusammenführen, aber ich mache immer ein
git merge --no-ff
, um einen schnellen Vorlauf zu vermeiden, damit der Verzweigungsverlauf im Diagramm sichtbar ist. Ich möchte die Geschichte haben, wo der Feature-Zweig vom Entwicklungszweig abgewichen ist und wo er sich wieder angeschlossen hat:Dies stammt aus einem erfolgreichen Git-Verzweigungsmodell von Vincent Driessen, einem sehr schönen Workflow für Git, den ich für die meisten meiner Projekte anwende.
quelle
merge --no-ff
Master zurück, weil Sie, wie Sie sagen, den Verlauf sehen können.Ich kann mir zwei Gründe vorstellen, warum Sie einen Feature-Zweig für eine Weile beibehalten möchten:
In der Praxis ist das Löschen nach dem Zusammenführen meistens in Ordnung.
quelle
Ein typischer Workflow ist
quelle
Ich denke, das ist der typische Workflow (Löschen nach dem Zusammenführen)
BEARBEITEN Also, anstatt zumindest für kurzlebige Zweige zusammenzuführen, denke ich, dass die Idee darin besteht, sie an den Master weiterzuleiten. Dann erhalten Sie einen linearen Änderungsverlauf, und der gesamte Zweig wird Teil des Hauptstamms. In diesem Fall haben Sie alle Änderungen dort, sodass Sie eindeutig keine Kopie benötigen.
quelle