Beispiel für einen Git-Branchingworkflow
Sie müssen natürlich eine Branchingstrategie entwickeln, die für Ihr Team am besten geeignet ist. Hier ein kurzes Beispiel für einen Arbeitsablauf mit zwei Arten von Branching: ein Entwicklungs-/Integrations-Branching und ein Funktions-/Themen-Branching.
Angenommen, Sie arbeiten gerade an einem neuen Feature, als jemand einen Fehler in der Produktion entdeckt, und Sie müssen diesen Fehler parallel zur Arbeit am neuen Feature beheben.
![On the way of work on a topic branch to add functions, it becomes necessary to fix bugs.](/static/64c6b72c9b739fb734a50a1d6094a443/5a190/01.png)
Bevor Sie mit der Fehlerbehebung beginnen, erstellen Sie einen neuen Branch aus dem Entwicklungs-Branch. Dieser neue Branch isoliert die Fehlerbehebung vom neuen Feature, an dem Sie gearbeitet haben.
![You can start working independently from the addition of functions by creating a new topic branch for fixing bugs.](/static/482b6176fb4514674a79990a76011166/5a190/02.png)
Wenn Sie bereit sind, die Fehlerbehebung zu veröffentlichen, führen Sie den Feature-Branch der Fehlerbehebung mit dem Entwicklungs-Branch zusammen.
![You can make it public by including it in the original branch](/static/7cc379aed15319e29fe0329de4a64d55/5a190/03.png)
Dann wechseln Sie zurück zu Ihrem ursprünglichen Feature-Branch und arbeiten weiter an der neuen Funktion.
![You can go back to the original branch to continue working on the addition of functions](/static/d0570d35da8cf1282e0feb5379a977d3/5a190/04.png)
Im Feature-Branch stellen Sie fest, dass Commit „X“, der Bugfix-Commit, benötigt wird, um mit der Implementierung des neuen Features fortzufahren. Mit anderen Worten: Sie müssen Ihren aktuellen Branch mit den Änderungen im Entwicklungs-Branch synchronisieren.
Es gibt zwei Möglichkeiten, dies zu tun: Die erste ist, den Entwicklungs-Branch, der den Commit „X“ enthält, mit dem aktuellen Branch zusammenzuführen; die zweite Möglichkeit ist, den aktuellen Branch auf den Entwicklungs-Branch zurückzusetzen, der den Commit „X“ enthält.
In diesem Beispiel verwenden Sie den Rebasing-Ansatz.
![Rebase a unified branch](/static/240d81fa224dd7bbc7d43ac471db645f/5a190/05.png)
Sobald Sie „X“ in Ihrer aktuellen Arbeitsbaumstruktur haben, können Sie wieder problemlos mit der Arbeit an dem neuen Feature beginnen.