Branching und Zusammenführen Ihrer Änderungen

Abgeschlossen

Wenn Sie an Bicep-Code arbeiten, ist es üblich, mehr als eine Sache gleichzeitig ausführen zu müssen. Hier sehen Sie beispielsweise zwei Szenarien für die Arbeit mit der Website Ihrer Spielwarenfirma:

  • Das Entwicklungsteam Ihrer Website wünscht Ihre Hilfe bei der Aktualisierung von Bicep-Dateien mit erheblichen Änderungen. Das Team möchte jedoch noch nicht, dass diese Änderungen live gehen. Sie müssen in der Lage sein, kleinere Anpassungen an der aktuellen Liveversion der Website parallel zur Arbeit an der neuen Version vorzunehmen.
  • Sie arbeiten an experimentellen Änderungen, die Ihrer Meinung nach zur Verbesserung der Leistung der Website beitragen werden. Diese Änderungen sind jedoch vorläufig. Sie möchten sie erst dann auf die Liveversion der Website anwenden, wenn Sie fertig sind.

In dieser Lerneinheit erfahren Sie mehr über Git-Branches.

Hinweis

Die Befehle in dieser Lerneinheit dienen der Veranschaulichung der Konzepte. Führen Sie die Befehle jetzt noch nicht aus. Sie können das Erlernte in Kürze üben.

Was sind Branches?

Ein Branch bietet eine Möglichkeit, mehrere aktive Kopien Ihrer Dateien zu unterhalten. Sie können jederzeit Branches erstellen und zwischen ihnen wechseln. Wenn Sie mit der Arbeit mit einem Branch fertig sind, können Sie ihn in einem anderen Branch zusammenführen. Oder Sie können ihn auch löschen, wodurch alle Änderungen entfernt werden.

Es ist üblich, Branches für Ihre gesamte Arbeit zu verwenden. Häufig bezeichnen Sie einen Branch als primären Branch, der die als funktionierend bekannte oder Liveversion Ihrer Dateien darstellt. Per Konvention wird dieser Branch in der Regel als main bezeichnet. Sie können beliebig viele andere Branches erstellen. Wenn Ihre Änderungen an einem Branch bereit sind, führen Sie den Branch im Mainbranch zusammen.

Erstellen und Auschecken eines Branches

Das Erstellen eines Branches geht in Git schnell und einfach. Es gibt ein paar Möglichkeiten, dies zu tun, aber die einfachste Methode ist in der Regel die Verwendung des Befehls git checkout. Hier sehen Sie ein Beispiel dafür, wie wir einen neuen Branch namens my-experimental-changes erstellen:

git checkout -b my-experimental-changes

Dieser Befehl führt tatsächlich zwei Dinge aus: Er erstellt den Branch my-experimental-changes und checkt den neu erstellten Branch aus. Auschecken bedeutet, dass die Kopie der Dateien, die in Ihrem Ordner angezeigt werden, den Inhalt im Branch wiedergeben. Wenn Sie über zwei Branches mit unterschiedlichen Sätzen von Änderungen verfügen und zuerst den einen Branch und anschließend den anderen auschecken, können Sie zwischen den beiden Änderungssätzen hin- und herwechseln.

Sie können auch mithilfe des Befehls git checkout zu einem vorhandenen Branch wechseln. In diesem Beispiel checken Sie den Mainbranch aus:

git checkout main

Hinweis

Normalerweise müssen Sie ihre Änderungen committen, bevor Sie einen anderen Branch auschecken können. Git warnt Sie, wenn Sie nicht auschecken können.

Arbeiten an einem Branch

Nachdem Sie zu einem Branch gewechselt sind, committen Sie Dateien wie gewohnt. Tatsächlich war alles, was Sie bisher getan haben, in einem Branch. Sie haben am Mainbranch gearbeitet, wobei es sich um den Standardbranch handelt, wenn Sie ein neues Repository erstellen.

Wenn Sie einige Änderungen committen, während Sie einen Branch ausgecheckt haben, wird der Commit dem Branch zugeordnet. Wenn Sie zu einem anderen Branch wechseln, wird der Commit wahrscheinlich erst dann im git log-Verlauf zu sehen sein, wenn Sie den Branch zusammenführen.

Zusammenführen von Branches

Branches sind eine hervorragende Möglichkeit, Ihre laufende Arbeit von der aktuellen Liveversion Ihres Bicep-Codes zu trennen. Nachdem Sie aber die Änderungen an Ihren Dateien in einem Branch vorgenommen haben, möchten Sie die Änderungen häufig wieder in Ihrem Mainbranch zusammenführen.

Wenn Sie an einem Branch arbeiten, können Sie die Änderungen eines anderen Branchs mithilfe des Befehls git merge in Ihrem aktuellen Branch zusammenführen.

Hinweis

Achten Sie darauf, dass Sie den Mergezielbranch (häufig als Zielbranch bezeichnet) auschecken, bevor Sie zusammenführen. Denken Sie daran, dass Sie aus einem anderen Branch in Ihrem aktuellen Arbeitsbranch zusammenführen.

Hier sehen Sie ein Beispiel, das zeigt, wie Sie den Mainbranch auschecken und dann die Änderungen aus dem Branch my-experimental-changes im Mainbranch zusammenführen können. Abschließend löschen Sie den Branch my-experimental-changes,, da Sie ihn nicht mehr benötigen.

git checkout main
git merge my-experimental-changes
git branch -d my-experimental-changes

Tipp

Wenn Sie mit anderen Personen arbeiten, ist es üblich, Pull Requests zu verwenden, um Ihre Änderungen zusammenzuführen, anstatt Branches direkt zusammenzuführen. Weitere Informationen zu Zusammenarbeit und Pull Requests erhalten Sie in Kürze.

Mergekonflikte

Wenn Git Änderungen aus einem Branch in einem anderen zusammenführt, werden die geänderten Dateien untersucht und versucht, die Änderungen zusammenzuführen. Manchmal haben Sie möglicherweise Änderungen an denselben Codezeilen in zwei verschiedenen Branches vorgenommen. In diesen Situationen kann Git nicht entscheiden, welche Version des Codes korrekt ist, weshalb es stattdessen einen Mergekonflikt erstellt.

Mergekonflikte werden in diesem Modul nicht ausführlich diskutiert, doch es ist wichtig zu wissen, dass ein Mergekonflikt auftreten kann. Und dies tritt noch häufiger auf, wenn Sie mit anderen Personen zusammenarbeiten. In der Zusammenfassung dieses Moduls finden Sie einen Link zu weiteren Informationen darüber, wie Git und Visual Studio Code Ihnen helfen, Mergekonflikte aufzulösen.

Git-Workflows

In diesem Modul lernen Sie nur die Grundlagen von Branches kennen. Branches sind jedoch leistungsstark und bieten Ihnen Flexibilität bei der Arbeit. Sie können z. B. Branches aus anderen Branches heraus erstellen und einen Branch mit jedem anderen Branch zusammenführen. Sie können Branches verwenden, um alle Arten verschiedener Workflows zu erstellen, die die Art und Weise unterstützen, wie Sie und Ihr Team gerne arbeiten.

In diesem Modul verwenden wir einen einfachen Workflow namens trunkbasierte Entwicklung. In diesem Workflow verfügen Sie über einen einzelnen Trunkbranch. In den Beispielen dieses Artikels wird z. B. main verwendet. Dieser Branch stellt die als funktionierend bekannte Version Ihres Codes dar. Sie erstellen Branches aus diesem Trunk, wenn Sie Änderungen oder jegliche Arbeiten vornehmen.

Die trunkbasierte Entwicklung rät davon ab, Änderungen direkt am Trunkbranch vorzunehmen. Sie versuchen, andere Branches nur für einen kurzen Zeitraum zu behalten, wodurch sich Mergekonflikte minimieren lassen. Anschließend führen Sie diese Branches zusammen und löschen sie, wenn Sie Arbeitselemente abgeschlossen haben.

Es gibt andere Workflows, die häufig in Teamumgebungen verwendet werden, in denen Sie möglicherweise steuern möchten, wie oft Sie Ihre Änderungen veröffentlichen. In der Zusammenfassung dieses Moduls finden Sie Links zu weiteren Informationen über Git-Workflows.