Suche…


Syntax

  • git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
  • git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
  • git branch --unset-upstream [<branchname>]
  • git branch (-m | -M) [<oldbranch>] <newbranch>
  • git branch (-d | -D) [-r] <branchname>…​
  • git branch --edit-description [<branchname>]
  • git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>…​]

Parameter

Parameter Einzelheiten
-d, --delete Einen Zweig löschen. Der Zweig muss in seinem Upstream-Zweig oder in HEAD vollständig zusammengeführt werden, wenn kein Upstream mit --track oder --set-upstream
-D --delete --force für --delete --force
-m, - bewegen Verschieben / Umbenennen eines Zweigs und des entsprechenden Reflogs
-M --move --force für --move --force
-r, --remotes Listen oder löschen Sie (falls mit -d verwendet) die Remote-Tracking-Zweige
-a, --all Listen Sie sowohl Fernverfolgungszweige als auch lokale Zweigstellen auf
--Liste Aktivieren Sie den Listenmodus. git branch <pattern> versucht, einen Zweig zu erstellen. Verwenden Sie git branch --list <pattern> um übereinstimmende Zweige git branch --list <pattern>
--set-upstream Wenn der angegebene Zweig noch nicht existiert oder --force angegeben wurde, --track genau wie --track . Ansonsten wird die Konfiguration wie --track beim Erstellen der Verzweigung festgelegt, außer dass die Verzweigungspunkte nicht geändert werden

Bemerkungen

Jedes Git-Repository hat eine oder mehrere Niederlassungen . Eine Verzweigung ist eine benannte Referenz auf den HEAD einer Folge von Commits.

Ein Git-Repo verfügt über einen aktuellen Zweig (durch ein * in der Liste der Zweignamen, die vom Befehl git branch gedruckt werden). Wenn Sie mit dem Befehl git commit ein neues Commit erstellen, wird das neue Commit zum HEAD des aktuellen Zweigs Der vorherige HEAD wird das übergeordnete Element des neuen Commits.

Ein neuer Zweig hat den gleichen HEAD wie der Zweig, aus dem er erstellt wurde, bis etwas an den neuen Zweig übergeben wird.

Auflistung der Niederlassungen

Git bietet mehrere Befehle zum Auflisten von Zweigen. Alle Befehle verwenden die Funktion von git branch , die eine Liste bestimmter Verzweigungen bereitstellt, abhängig davon, welche Optionen in der Befehlszeile stehen. Git zeigt, wenn möglich, den aktuell ausgewählten Zweig mit einem Stern daneben an.

Tor Befehl
Lokale Filialen auflisten git branch
Listen Sie lokale Niederlassungen ausführlich auf git branch -v
Liste entfernter und lokaler Niederlassungen git branch -a ODER git branch --all
Liste entfernter und lokaler Niederlassungen (ausführlich) git branch -av
Liste entfernter Zweige git branch -r
Listen Sie entfernte Zweige mit dem neuesten Commit auf git branch -rv
Listen Sie zusammengeführte Zweige auf git branch --merged
Listen Sie nicht zusammengeführte Zweige auf git branch --no-merged
Liste der Zweige mit Commit git branch --contains [<commit>]

Anmerkungen :

  • Durch Hinzufügen eines zusätzlichen v zu -v z. B. $ git branch -avv oder $ git branch -vv wird auch der Name des Upstream-Zweigs gedruckt.
  • Zweige in roter Farbe sind entfernte Zweige

Neue Filialen anlegen und auschecken

Um einen neuen Zweig zu erstellen, während Sie auf dem aktuellen Zweig bleiben, verwenden Sie:

git branch <name>

Im Allgemeinen darf der Zweigname keine Leerzeichen enthalten und unterliegt anderen hier aufgeführten Spezifikationen. So wechseln Sie zu einem vorhandenen Zweig:

git checkout <name>

So erstellen Sie einen neuen Zweig und wechseln zu ihm:

git checkout -b <name>

Verwenden Sie einen der folgenden Befehle, um einen Zweig an einem anderen Punkt als dem letzten Commit des aktuellen Zweigs (auch als HEAD bezeichnet) zu erstellen:

git branch <name> [<start-point>]
git checkout -b <name> [<start-point>]

Der <start-point> beliebig seine Revision zu GIT (zB ein anderer Zweigname, commit SHA oder eine symbolische Referenz wie Kopf oder einen Tag - Namen) bekannt:

git checkout -b <name> some_other_branch
git checkout -b <name> af295
git checkout -b <name> HEAD~5
git checkout -b <name> v1.0.5

So erstellen Sie eine Verzweigung aus einer entfernten Verzweigung (der Standardwert <remote_name> ist Ursprung):

git branch <name> <remote_name>/<branch_name>
git checkout -b <name> <remote_name>/<branch_name>

Wenn ein bestimmter Zweigname nur auf einer Fernbedienung vorhanden ist, können Sie einfach verwenden

git checkout -b <branch_name>

das ist äquivalent zu

git checkout -b <branch_name> <remote_name>/<branch_name>

Manchmal müssen Sie möglicherweise einige Ihrer letzten Commits in einen neuen Zweig verschieben. Dies kann durch Verzweigung und "Zurückrollen" wie folgt erreicht werden:

git branch <new_name>
git reset --hard HEAD~2 # Go back 2 commits, you will lose uncommitted work.
git checkout <new_name>

Hier ist eine illustrative Erklärung dieser Technik:

 Initial state       After git branch <new_name>    After git reset --hard HEAD~2
                             newBranch                        newBranch
                                 ↓                                ↓
A-B-C-D-E (HEAD)         A-B-C-D-E (HEAD)                 A-B-C-D-E (HEAD)
        ↑                        ↑                            ↑
      master                   master                       master

Einen Zweig lokal löschen

$ git branch -d dev

Löscht den Zweig mit dem Namen dev wenn seine Änderungen mit einem anderen Zweig zusammengeführt werden und nicht verloren gehen. Wenn der dev Zweig Änderungen enthält, die noch nicht zusammengeführt wurden und verloren gingen, schlägt git branch -d fehl:

$ git branch -d dev
error: The branch 'dev' is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev'.

Mit der Warnmeldung können Sie das Löschen des Zweigs erzwingen (und alle nicht zusammengeführten Änderungen in diesem Zweig verlieren), indem Sie das Flag -D verwenden:

$ git branch -D dev

Überprüfen Sie einen neuen Zweig, der einen entfernten Zweig verfolgt

Es gibt drei Möglichkeiten , eine Niederlassung zu schaffen feature , die die Remote - Zweigspuren origin/feature :

  • git checkout --track -b feature origin/feature ,
  • git checkout -t origin/feature ,
  • git checkout feature - vorausgesetzt, es gibt keinen lokalen feature Zweig und es gibt nur einen Remote mit dem feature Zweig.

So richten Sie Upstream ein, um den Remote-Zweig zu verfolgen:

  • git branch --set-upstream-to=<remote>/<branch> <branch>
  • git branch -u <remote>/<branch> <branch>

woher:

  • <remote> kann sein: origin , develop oder vom Benutzer erstellt,
  • <branch> ist der Zweig des Benutzers, der auf der Ferne verfolgt werden soll.

So überprüfen Sie, welche Remote-Zweigstellen Ihre lokalen Zweigstellen verfolgen:

  • git branch -vv

Einen Zweig umbenennen

Benennen Sie den ausgecheckten Zweig um:

git branch -m new_branch_name

Einen anderen Zweig umbenennen:

git branch -m branch_you_want_to_rename new_branch_name

Überschreiben Sie eine einzelne Datei im aktuellen Arbeitsverzeichnis mit derselben Datei aus einem anderen Zweig

Die ausgecheckte Datei überschreibt die noch nicht vorgenommenen Änderungen, die Sie in dieser Datei vorgenommen haben.

Dieser Befehl file.example die Datei file.example (die sich im Verzeichnispfad path/to/ ) aus und überschreibt alle Änderungen, die Sie an dieser Datei vorgenommen haben.

git checkout some-branch path/to/file

some-branch kann alles sein , tree-ish zu git (siehe bekannt Revision Auswahl und gitrevisions für weitere Details)


Sie müssen -- vor dem Pfad hinzufügen, wenn Ihre Datei mit einer Datei verwechselt werden kann (ansonsten optional). Nach dem -- können keine weiteren Optionen geliefert werden.

git checkout some-branch -- some-file

Die zweite some-file ist in diesem Beispiel eine Datei.

Löschen Sie einen entfernten Zweig

Um einen Zweig im origin Remote-Repository zu löschen, können Sie für Git Version 1.5.0 und neuer verwenden

git push origin :<branchName>

Ab Git Version 1.7.0 können Sie einen Remote-Zweig mit löschen

git push origin --delete <branchName>

So löschen Sie einen lokalen Remote-Tracking-Zweig:

git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter

git fetch <remote> --prune # Delete multiple obsolete tracking branches
git fetch <remote> -p      # Shorter

Einen Zweig lokal löschen. Beachten Sie, dass dadurch die Verzweigung nicht gelöscht wird, wenn sich nicht zusammengeführte Änderungen ergeben:

git branch -d <branchName>

So löschen Sie einen Zweig, auch wenn Änderungen nicht zusammengeführt wurden:

git branch -D <branchName>

Erstellen Sie einen verwaisten Zweig (dh Zweig ohne übergeordnetes Commit)

git checkout --orphan new-orphan-branch

Das erste Commit für diesen neuen Zweig wird keine Eltern haben, und es wird die Wurzel einer neuen Geschichte sein, die völlig von allen anderen Zweigen und Commits getrennt ist.

Quelle

Zweig zur Fernbedienung drücken

Verwenden Sie diese Option, um in Ihrem lokalen Zweig vorgenommene Commits in ein Remote-Repository zu verschieben.

Der Befehl git push benötigt zwei Argumente:

  • Ein entfernter Name, z. B. origin
  • Ein Zweigname, zum Beispiel master

Zum Beispiel:

git push  <REMOTENAME> <BRANCHNAME>

Beispielsweise führen Sie in der Regel git push origin master , um Ihre lokalen Änderungen in Ihr Online-Repository zu übernehmen.

Mit -u (kurz für --set-upstream ) werden die Tracking-Informationen während des Push- --set-upstream eingerichtet.

git push -u <REMOTENAME> <BRANCHNAME>

Standardmäßig schiebt git den lokalen Zweig an einen entfernten Zweig mit demselben Namen. Wenn Sie beispielsweise ein lokales new-feature namens new-feature , wenn Sie auf den lokalen Zweig drücken, wird auch ein new-feature Zweig für einen entfernten Zweig erstellt. Wenn Sie einen anderen Namen für den Remote - Zweig verwenden möchten, fügen Sie den Remote - Namen nach dem lokalen Zweignamen, getrennt durch : :

git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>

Verschieben Sie den aktuellen Zweigkopf in ein beliebiges Commit

Ein Zweig ist nur ein Zeiger auf ein Commit, sodass Sie ihn frei verschieben können. aabbcc den Befehl aus, damit sich der Zweig auf das aabbcc bezieht

git reset --hard aabbcc

Bitte beachten Sie, dass dadurch der aktuelle Commit Ihrer Zweigstelle und damit der gesamte Verlauf überschrieben wird. Durch diesen Befehl könnten Sie etwas Arbeit verlieren. In diesem Fall können Sie das verlorene Commit mit dem Reflog wiederherstellen. Es kann empfohlen werden, diesen Befehl in einem neuen Zweig anstelle des aktuellen Zweigs auszuführen.

Dieser Befehl kann jedoch besonders nützlich sein, wenn Sie neue Basenänderungen vornehmen oder solche Änderungen vornehmen.

Schneller Wechsel zum vorherigen Zweig

Mit können Sie schnell zum vorherigen Zweig wechseln

git checkout -

In Filialen suchen

Um lokale Zweige aufzulisten, die ein bestimmtes Commit oder Tag enthalten

git branch --contains <commit>

Lokale und entfernte Zweige auflisten, die ein bestimmtes Commit oder Tag enthalten

git branch -a --contains <commit>


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow