HOWTO · Git

So erstellen und verwenden Sie Branches auf Git

Dieses Tutorial stellt den Git-Zweig vor. Wir werden sehen, wie Git Branches Ihnen helfen können, Ihr Projekt zu organisieren.

Auf dieser Seite

Um einen Branch aus Ihrem aktuellen Commit zu erstellen, führen Sie git branch feature/login aus. Dadurch wird der Branch erstellt, Sie bleiben jedoch auf dem aktuellen Branch. Um ihn zu erstellen und in einem Schritt zu ihm zu wechseln, verwenden Sie git checkout -b feature/login. Git-Branches sind leichtgewichtige Zeiger auf Commits, daher beginnt der neue Branch bei beiden Befehlen am Commit des aktuellen Branchs, sofern Sie keinen anderen Ausgangspunkt angeben.

Branches mit git branch erstellen und prüfen

Führen Sie git branch ohne Argumente aus, um lokale Branches aufzulisten. Git stellt dem aktuell ausgecheckten Branch ein Sternchen voran. Das folgende Beispiel erstellt ein temporäres Repository, fügt einen Commit hinzu, erstellt einen Themen-Branch und listet die lokalen Branches auf. Das Sternchen markiert den jetzt ausgecheckten Branch. Die Shell entfernt das temporäre Repository, wenn sie beendet wird.

set -eu
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
git -C "$tmp" init -q -b main
git -C "$tmp" config user.name Example
git -C "$tmp" config user.email example@example.com
printf 'starter\n' > "$tmp/README.md"
git -C "$tmp" add README.md
git -C "$tmp" commit -qm "Add starter file"
git -C "$tmp" branch feature/login
git -C "$tmp" branch
  feature/login
* main

Erstellen Sie einen Branch, ohne zu wechseln, indem Sie git branch feature/login ausführen. Um den aktuellen Branch umzubenennen, verwenden Sie git branch -m new-name; um einen anderen lokalen Branch umzubenennen, verwenden Sie git branch -m old-name new-name. Die Option -m benennt einen Branch um; sie verschiebt einen Branch nicht zwischen Speicherorten.

Bei einem zusammengeführten lokalen Branch fordert git branch -d feature/login Git auf, ihn zu löschen, und verweigert dies, wenn Git ihn als nicht zusammengeführt betrachtet. Verwenden Sie git branch -D feature/login nur, wenn Sie die lokale Branch-Referenz entfernen möchten, obwohl ihre Commits möglicherweise anderswo nicht zusammengeführt sind. Das Löschen eines Branchs auf diese Weise löscht keine Commits, die über eine andere Referenz erreichbar bleiben, aber Commits, die nur von diesem Branch aus erreichbar sind, können schließlich durch Gits Bereinigung entfernt werden.

Diese Befehle wirken sich auf lokale Branches aus. Um einen Branch aus dem Remote namens origin zu löschen, führen Sie git push origin --delete feature/login aus. Dadurch wird Ihr lokaler Branch nicht gelöscht; entfernen Sie ihn bei Bedarf separat.

Einen Branch mit git checkout -b erstellen und zu ihm wechseln

Verwenden Sie git checkout existing-branch, um zu einem Branch zu wechseln, der bereits existiert. Verwenden Sie git checkout -b feature/login, um einen neuen Branch am aktuellen Commit zu erstellen und sofort zu ihm zu wechseln. Wenn der Name bereits existiert, meldet Git, dass es den Branch nicht erstellen kann; wählen Sie einen anderen Namen oder wechseln Sie zum bestehenden Branch.

Nicht committete Änderungen bleiben beim Wechseln des Branchs im Arbeitsbaum, wenn sie sicher mitgenommen werden können. Git committet diese Änderungen nicht und speichert sie nicht ausschließlich auf dem neuen Branch. Sie bleiben nicht committet und können auf dem Branch erscheinen, zu dem Sie wechseln. Wenn das Wechseln eine Änderung überschreiben würde, stoppt Git und fordert Sie auf, den Konflikt zuerst zu lösen. Committen Sie die Arbeit oder verwenden Sie git stash vor dem Wechseln, wenn Sie sie getrennt halten müssen.

Führen Sie nach dem Wechseln git status aus, um den aktuellen Branch zu bestätigen und zu sehen, welche Dateien weiterhin geändert oder nicht verfolgt sind. Nach git checkout -b feature/login sollte git status beispielsweise feature/login angeben; alle kompatiblen Änderungen erscheinen weiterhin als Änderungen im Arbeitsbaum, bis Sie sie committen, stashen oder verwerfen.