Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.51.1 → 2.52.0 keine Änderungen
-
2.51.0
2025-08-18
- 2.50.1 keine Änderungen
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 keine Änderungen
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 keine Änderungen
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 keine Änderungen
-
2.40.0
2023-03-12
- 2.39.4 → 2.39.5 keine Änderungen
-
2.39.3
2023-04-17
- 2.38.1 → 2.39.2 keine Änderungen
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 keine Änderungen
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 keine Änderungen
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 keine Änderungen
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 keine Änderungen
-
2.34.0
2021-11-15
- 2.33.2 → 2.33.8 keine Änderungen
-
2.33.1
2021-10-12
- 2.31.1 → 2.33.0 keine Änderungen
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 keine Änderungen
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 keine Änderungen
-
2.29.0
2020-10-19
- 2.28.1 keine Änderungen
-
2.28.0
2020-07-27
- 2.23.1 → 2.27.1 keine Änderungen
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 keine Änderungen
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 keine Änderungen
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 keine Änderungen
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 keine Änderungen
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 keine Änderungen
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 keine Änderungen
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 keine Änderungen
-
2.9.5
2017-07-30
- 2.8.6 keine Änderungen
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 keine Änderungen
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
gitbranch[--color[=<when>] |--no-color] [--show-current] [-v[--abbrev=<n> |--no-abbrev]] [--column[=<options>] |--no-column] [--sort=<key>] [--merged[<commit>]] [--no-merged[<commit>]] [--contains[<commit>]] [--no-contains[<commit>]] [--points-at<object>] [--format=<format>] [(-r|--remotes) | (-a|--all)] [--list] [<pattern>…]gitbranch[--track[=(direct|inherit)] |--no-track] [-f] [--recurse-submodules] <branch-name> [<start-point>]gitbranch(--set-upstream-to=<upstream>|-u<upstream>) [<branch-name>]gitbranch--unset-upstream[<branch-name>]gitbranch(-m|-M) [<old-branch>] <new-branch>gitbranch(-c|-C) [<old-branch>] <new-branch>gitbranch(-d|-D) [-r] <branch-name>…gitbranch--edit-description[<branch-name>]
BESCHREIBUNG
Wenn --list angegeben wird oder keine Nicht-Optionsargumente vorhanden sind, werden vorhandene Branches aufgelistet; der aktuelle Branch wird grün hervorgehoben und mit einem Sternchen markiert. Alle Branches, die in verknüpften Arbeitsbäumen ausgecheckt sind, werden in Cyan hervorgehoben und mit einem Pluszeichen markiert. Die Option -r bewirkt, dass die Remote-Tracking-Branches aufgelistet werden, und die Option -a zeigt sowohl lokale als auch Remote-Branches an.
Wenn ein <Muster> angegeben wird, wird es als Shell-Wildcard verwendet, um die Ausgabe auf passende Branches zu beschränken. Wenn mehrere Muster angegeben werden, wird ein Branch angezeigt, wenn er einem der Muster entspricht.
Beachten Sie, dass Sie bei der Angabe eines <Musters> --list verwenden müssen; andernfalls kann der Befehl als Branch-Erstellung interpretiert werden.
Mit --contains werden nur die Branches angezeigt, die den genannten Commit enthalten (d. h. die Branches, deren Tip-Commits Nachkommen des genannten Commits sind), --no-contains kehrt dies um. Mit --merged werden nur Branches aufgelistet, die in den genannten Commit gemergt wurden (d. h. die Branches, deren Tip-Commits vom genannten Commit erreichbar sind). Mit --no-merged werden nur Branches aufgelistet, die nicht in den genannten Commit gemergt wurden. Wenn das <Commit>-Argument fehlt, wird standardmäßig HEAD verwendet (d. h. der Tip des aktuellen Branches).
Die zweite Form des Befehls erstellt einen neuen Branch-Head namens <Branch-Name>, der auf den aktuellen HEAD zeigt, oder auf <Startpunkt>, wenn dieser angegeben ist. Als Sonderfall für <Startpunkt> können Sie <Rev-A>...<Rev-B> als Abkürzung für die Merge-Basis von <Rev-A> und <Rev-B> verwenden, wenn es genau eine Merge-Basis gibt. Sie können höchstens einen der <Rev-A> und <Rev-B> weglassen, in diesem Fall wird standardmäßig HEAD verwendet.
Beachten Sie, dass dies den neuen Branch erstellt, aber den Arbeitsbaum nicht dorthin wechselt; verwenden Sie git switch <Neuer-Branch>, um zum neuen Branch zu wechseln.
Wenn ein lokaler Branch von einem Remote-Tracking-Branch aus gestartet wird, konfiguriert Git den Branch (insbesondere die Konfigurationseinträge branch.<Name>.remote und branch.<Name>.merge) so, dass git pull entsprechend vom Remote-Tracking-Branch mergt. Dieses Verhalten kann über das globale Konfigurationsflag branch.autoSetupMerge geändert werden. Diese Einstellung kann durch die Optionen --track und --no-track überschrieben und später mit git branch --set-upstream-to geändert werden.
Mit der Option -m oder -M wird <alter-Branch> in <neuer-Branch> umbenannt. Wenn <alter-Branch> einen entsprechenden Reflog hatte, wird er umbenannt, um <neuer-Branch> zu entsprechen, und ein Reflog-Eintrag wird erstellt, um die Branch-Umbenennung zu merken. Wenn <neuer-Branch> existiert, muss -M verwendet werden, um die Umbenennung zu erzwingen.
Die Optionen -c und -C haben die exakt gleichen Semantiken wie -m und -M, außer dass der Branch anstatt umbenannt zu werden, unter neuem Namen kopiert wird, zusammen mit seiner Konfiguration und seinem Reflog.
Mit der Option -d oder -D wird <Branch-Name> gelöscht. Sie können mehr als einen Branch zur Löschung angeben. Wenn der Branch aktuell einen Reflog hat, wird auch der Reflog gelöscht.
Verwenden Sie -r zusammen mit -d, um Remote-Tracking-Branches zu löschen. Beachten Sie, dass es nur sinnvoll ist, Remote-Tracking-Branches zu löschen, wenn sie im Remote-Repository nicht mehr existieren oder wenn git fetch so konfiguriert wurde, dass sie nicht wieder abgerufen werden. Siehe auch den Unterbefehl prune von git-remote[1] für eine Möglichkeit, alle veralteten Remote-Tracking-Branches zu bereinigen.
OPTIONEN
-d--delete-
Löscht einen Branch. Der Branch muss vollständig in seinen Upstream-Branch oder in
HEADgemergt sein, wenn kein Upstream mit--trackoder--set-upstream-togesetzt wurde. -D-
Abkürzung für
--delete--force. --create-reflog-
Erstellt den Reflog des Branches. Dies aktiviert die Aufzeichnung aller Änderungen am Branch-Ref, was die Verwendung von Datums-basierten SHA1-Ausdrücken wie <Branch-Name>
@{gestern}ermöglicht. Beachten Sie, dass in Nicht-Bare-Repositorys Reflogs normalerweise standardmäßig durch die Konfigurationsoptioncore.logAllRefUpdatesaktiviert sind. Die negierte Form--no-create-reflogüberschreibt nur ein früheres--create-reflog, negiert aber derzeit nicht die Einstellung voncore.logAllRefUpdates. -f--force-
Setzt <Branch-Name> auf <Startpunkt> zurück, auch wenn <Branch-Name> bereits existiert. Ohne
-flehntgitbranchdie Änderung eines bestehenden Branches ab. In Kombination mit-d(oder--delete) erlaubt das Löschen des Branches unabhängig von seinem Merge-Status oder ob er überhaupt auf einen gültigen Commit zeigt. In Kombination mit-m(oder--move) erlaubt das Umbenennen des Branches, auch wenn der neue Branch-Name bereits existiert, dasselbe gilt für-c(oder--copy).Beachten Sie, dass
gitbranch-f<Branch-Name> [<Startpunkt>] auch mit-fdie Änderung eines bestehenden Branches <Branch-Name> ablehnt, der in einem anderen Arbeitsbaum, der mit demselben Repository verknüpft ist, ausgecheckt ist. -m--move-
Verschiebt/benennt einen Branch um, zusammen mit seiner Konfiguration und seinem Reflog.
-M-
Abkürzung für
--move--force. -c--copy-
Kopiert einen Branch, zusammen mit seiner Konfiguration und seinem Reflog.
-C-
Abkürzung für
--copy--force. --color[=<wann>]-
Färbt Branches, um aktuelle, lokale und Remote-Tracking-Branches hervorzuheben. Der Wert muss
immer(Standard),nieoderautosein. --no-color-
Schaltet die Branch-Farben aus, auch wenn die Konfigurationsdatei die Standardausgabe farbig vorgibt. Entspricht
--color=never. -i--ignore-case-
Sortierung und Filterung von Branches sind nicht case-sensitiv.
--omit-empty-
Druckt keine neue Zeile nach formatierten Refs, bei denen das Format zu einer leeren Zeichenkette expandiert.
--column[=<Optionen>]--no-column-
Zeigt die Branch-Liste in Spalten an. Siehe die Konfigurationsvariable
column.branchfür die Syntax der Optionen.--columnund--no-columnohne Optionen sind äquivalent zualwaysbzw.never.Diese Option ist nur im Nicht-Verbose-Modus anwendbar.
--sort=<Schlüssel>-
Sortiert basierend auf <Schlüssel>. Präfix
-, um absteigend nach dem Wert zu sortieren. Sie können die Option--sort=<Schlüssel> mehrmals verwenden, wobei der letzte Schlüssel zum primären Schlüssel wird. Die unterstützten Schlüssel sind die gleichen wie bei git-for-each-ref[1]. Die Sortierreihenfolge ist standardmäßig der Wert, der für die Variablebranch.sortkonfiguriert ist, falls vorhanden, oder die Sortierung basierend auf dem vollständigen Refnamen (einschließlich des Präfixesrefs/...). Dies listet zuerst detachedHEAD(falls vorhanden), dann lokale Branches und schließlich Remote-Tracking-Branches auf. Siehe git-config[1]. -r--remotes-
Listet auf oder löscht (wenn mit
-dverwendet) die Remote-Tracking-Branches. Kombinieren Sie mit--list, um den optionalen Mustern zu entsprechen. -a--all-
Listet sowohl Remote-Tracking-Branches als auch lokale Branches auf. Kombinieren Sie mit
--list, um optionalen Mustern zu entsprechen. -l--list-
Listet Branches auf. Mit optionalen <Muster>..., z.B.
gitbranch--listmaint-*', werden nur die Branches aufgelistet, die den Mustern entsprechen. --show-current-
Gibt den Namen des aktuellen Branches aus. Im Zustand detached
HEADwird nichts ausgegeben. -v-vv--verbose-
Im List-Modus werden SHA1 und die Betreffzeile des Commits für jeden Head angezeigt, zusammen mit der Beziehung zum Upstream-Branch (falls vorhanden). Wenn zweimal angegeben, wird auch der Pfad des verknüpften Arbeitsbaums (falls vorhanden) und der Name des Upstream-Branches ausgegeben (siehe auch
gitremoteshow<Remote>). Beachten Sie, dass für denHEADdes aktuellen Arbeitsbaums kein Pfad ausgegeben wird (es ist immer Ihr aktuelles Verzeichnis). -q--quiet-
Seien Sie beim Erstellen oder Löschen eines Branches leiser und unterdrücken Sie Nicht-Fehlermeldungen.
--abbrev=<n>-
In der ausführlichen Liste, die den Commit-Objektnamen anzeigt, wird der kürzeste Präfix angezeigt, der mindestens <n> Hexadezimalziffern lang ist und das Objekt eindeutig referenziert. Der Standardwert ist 7 und kann durch die Konfigurationsoption
core.abbrevüberschrieben werden. --no-abbrev-
Zeigt die vollständigen SHA1s in der Ausgabeliste an, anstatt sie abzukürzen.
-t--track[=(direct|inherit)]-
Beim Erstellen eines neuen Branches werden die Konfigurationseinträge
branch.<Name>.remoteundbranch.<Name>.mergegesetzt, um eine "Upstream"-Tracking-Konfiguration für den neuen Branch einzurichten. Diese Konfiguration weist Git an, die Beziehung zwischen den beiden Branches ingitstatusundgitbranch-vanzuzeigen. Außerdem weist siegitpullohne Argumente an, vom Upstream zu pullen, wenn der neue Branch ausgecheckt wird.Der genaue Upstream-Branch wird je nach optionalem Argument gewählt:
-t,--trackoder--track=directbedeutet, den Startpunkt-Branch selbst als Upstream zu verwenden;--track=inheritbedeutet, die Upstream-Konfiguration des Startpunkt-Branches zu kopieren.Die Konfigurationsvariable
branch.autoSetupMergegibt an, wie sichgitswitch,gitcheckoutundgitbranchverhalten sollen, wenn weder--tracknoch--no-trackangegeben sind.Die Standardoption
trueverhält sich so, als ob--track=directangegeben worden wäre, wenn der Startpunkt ein Remote-Tracking-Branch ist.falseverhält sich so, als ob--no-trackangegeben worden wäre.alwaysverhält sich so, als ob--track=directangegeben worden wäre.inheritverhält sich so, als ob--track=inheritangegeben worden wäre.simpleverhält sich so, als ob--track=directangegeben worden wäre, nur wenn der <Startpunkt> ein Remote-Tracking-Branch ist und der neue Branch denselben Namen wie der Remote-Branch hat.Weitere Erläuterungen zur Verwendung der Optionen
branch.<Name>.remoteundbranch.<Name>.mergefinden Sie unter git-pull[1] und git-config[1]. --no-track-
Richtet keine "Upstream"-Konfiguration ein, auch wenn die Konfigurationsvariable
branch.autoSetupMergegesetzt ist. --recurse-submodules-
DIESE OPTION IST EXPERIMENTELL! Veranlasst den aktuellen Befehl, in Submodule zu rekursieren, wenn
submodule.propagateBranchesaktiviert ist. Siehesubmodule.propagateBranchesin git-config[1]. Derzeit wird nur die Erstellung von Branches unterstützt.Bei der Erstellung eines Branches wird ein neuer Branch <Branch-Name> im Superprojekt und in allen Submodulen des <Startpunkt> des Superprojekts erstellt. In Submodulen zeigt der Branch auf den Submodul-Commit im <Startpunkt> des Superprojekts, aber die Tracking-Informationen des Branches werden basierend auf den Branches und Remotes des Submoduls eingerichtet, z. B.
gitbranch--recurse-submodulestopicorigin/mainerstellt den Submodul-Branch "topic", der auf den Submodul-Commit im "origin/main" des Superprojekts zeigt, aber das "origin/main" des Submoduls verfolgt. --set-upstream-
Da diese Option eine verwirrende Syntax hatte, wird sie nicht mehr unterstützt. Bitte verwenden Sie stattdessen
--trackoder--set-upstream-to. -u<Upstream>--set-upstream-to=<Upstream>-
Konfiguriert die Tracking-Informationen von <Branch-Name> so, dass <Upstream> als Upstream-Branch von <Branch-Name> betrachtet wird. Wenn kein <Branch-Name> angegeben ist, wird standardmäßig der aktuelle Branch verwendet.
--unset-upstream-
Entfernt die Upstream-Informationen für <Branch-Name>. Wenn kein Branch angegeben ist, wird standardmäßig der aktuelle Branch verwendet.
--edit-description-
Öffnet einen Editor und bearbeitet den Text zur Erklärung, wozu der Branch dient, der von verschiedenen anderen Befehlen (z. B.
format-patch,request-pullundmerge(falls aktiviert)) verwendet wird. Mehrzeilige Erklärungen sind möglich. --contains[<Commit>]-
Listet nur Branches auf, die <Commit> enthalten (
HEAD, wenn nicht angegeben). Impliziert--list. --no-contains[<Commit>]-
Listet nur Branches auf, die <Commit> nicht enthalten (
HEAD, wenn nicht angegeben). Impliziert--list. --merged[<Commit>]-
Listet nur Branches auf, deren Spitzen von <Commit> (
HEAD, wenn nicht angegeben) erreichbar sind. Impliziert--list. --no-merged[<Commit>]-
Listet nur Branches auf, deren Spitzen nicht von <Commit> (
HEAD, wenn nicht angegeben) erreichbar sind. Impliziert--list. --points-at<Objekt>-
Listet nur Branches auf, die auf <Objekt> zeigen.
--format<Format>-
Eine Zeichenkette, die
%(Feldname) aus einem angezeigten Branch-Ref und dem von ihm referenzierten Objekt interpoliert. <Format> ist dasselbe wie bei git-for-each-ref[1]. - <Branch-Name>
-
Der Name des zu erstellenden oder zu löschenden Branches. Der neue Branch-Name muss alle Prüfungen von git-check-ref-format[1] bestehen. Einige dieser Prüfungen können die in einem Branch-Namen erlaubten Zeichen einschränken.
- <Startpunkt>
-
Der neue Branch-Head wird auf diesen Commit zeigen. Er kann als Branch-Name, Commit-ID oder Tag angegeben werden. Wenn diese Option weggelassen wird, wird stattdessen der aktuelle
HEADverwendet. - <alter-Branch>
-
Der Name eines bestehenden Branches. Wenn diese Option weggelassen wird, wird stattdessen der Name des aktuellen Branches verwendet.
- <neuer-Branch>
-
Der neue Name eines bestehenden Branches. Dieselben Einschränkungen wie für <Branch-Name> gelten.
KONFIGURATION
pager.branch wird nur beim Auflisten von Branches berücksichtigt, d. h. wenn --list verwendet wird oder impliziert ist. Standardmäßig wird ein Pager verwendet. Siehe git-config[1].
Alles oberhalb dieser Zeile in diesem Abschnitt ist nicht in der Dokumentation von git-config[1] enthalten. Der nachfolgende Inhalt ist derselbe wie dort zu finden.
branch.autoSetupMerge-
Weist
gitbranch,gitswitchundgitcheckoutan, neue Branches so einzurichten, dass git-pull[1] entsprechend vom Startpunkt-Branch mergt. Beachten Sie, dass dieses Verhalten auch dann pro Branch über die Optionen--trackund--no-trackgewählt werden kann, wenn diese Option nicht gesetzt ist. Diese Option ist standardmäßig auftruegesetzt. Die gültigen Einstellungen sind:false-
es wird keine automatische Einrichtung durchgeführt
true-
die automatische Einrichtung erfolgt, wenn der Startpunkt ein Remote-Tracking-Branch ist
always-
die automatische Einrichtung erfolgt, wenn der Startpunkt entweder ein lokaler Branch oder ein Remote-Tracking-Branch ist
inherit-
wenn der Startpunkt eine Tracking-Konfiguration hat, wird diese auf den neuen Branch kopiert
simple-
die automatische Einrichtung erfolgt nur, wenn der Startpunkt ein Remote-Tracking-Branch ist und der neue Branch denselben Namen wie der Remote-Branch hat.
branch.autoSetupRebase-
Wenn ein neuer Branch mit
gitbranch,gitswitchodergitcheckouterstellt wird, der einen anderen Branch verfolgt, weist diese Variable Git an, Pull so einzurichten, dass stattdessen rebased wird (siehebranch.<Name>.rebase). Die gültigen Einstellungen sind:Siehe
branch.autoSetupMergefür Details, wie ein Branch zum Verfolgen eines anderen Branches eingerichtet wird. Diese Option ist standardmäßig aufnevergesetzt. branch.sort-
Diese Variable steuert die Sortierreihenfolge von Branches, wenn sie von git-branch[1] angezeigt werden. Ohne die Option
--sort=<Wert> wird der Wert dieser Variablen als Standard verwendet. Siehe die Feldnamen in git-for-each-ref[1] für gültige Werte. branch.<Name>.remote-
Wenn Sie sich auf Branch <Name> befinden, gibt dies
gitfetchundgitpushan, von welchem Remote abgerufen oder wohin gepusht werden soll. Das Remote zum Pushen kann mitremote.pushDefault(für alle Branches) überschrieben werden. Das Remote zum Pushen für den aktuellen Branch kann weiter durchbranch.<Name>.pushRemoteüberschrieben werden. Wenn kein Remote konfiguriert ist, oder wenn Sie sich auf keinem Branch befinden und mehr als ein Remote im Repository definiert ist, wird standardmäßigoriginzum Abrufen undremote.pushDefaultzum Pushen verwendet. Zusätzlich ist.(ein Punkt) das aktuelle lokale Repository (ein Dot-Repository), siehe abschließender Hinweis zubranch.<Name>.merge. branch.<Name>.pushRemote-
Wenn Sie sich auf Branch <Name> befinden, überschreibt dies
branch.<Name>.remotefür das Pushen. Es überschreibt auchremote.pushDefaultfür das Pushen von Branch <Name>. Wenn Sie von einem Ort abrufen (z. B. Ihrem Upstream) und zu einem anderen Ort pushen (z. B. Ihrem eigenen Publishing-Repository), möchten Sieremote.pushDefaultfestlegen, um das Remote für das Pushen aller Branches anzugeben, und diese Option verwenden, um es für einen bestimmten Branch zu überschreiben. branch.<Name>.merge-
Definiert zusammen mit
branch.<Name>.remoteden Upstream-Branch für den gegebenen Branch. Es sagtgitfetch/gitpull/gitrebase, welcher Branch gemergt werden soll, und kann auchgitpushbeeinflussen (siehepush.default). Wenn im Branch <Name>, sagt esgitfetch, dass der Standard-Refspec zum Mergen inFETCH_HEADmarkiert werden soll. Der Wert wird wie der Remote-Teil eines Refspecs behandelt und muss mit einem Ref übereinstimmen, der vom Remote gemäßbranch.<Name>.remoteabgerufen wird. Die Merge-Informationen werden vongitpull(das zuerstgitfetchaufruft) verwendet, um den Standard-Branch zum Mergen nachzuschlagen. Ohne diese Option mergtgitpullstandardmäßig den ersten abgerufenen Refspec. Geben Sie mehrere Werte an, um einen Oktopus-Merge zu erhalten. Wenn Siegitpullso einrichten möchten, dass in <Name> von einem anderen Branch im lokalen Repository gemergt wird, können Siebranch.<Name>.mergeauf den gewünschten Branch zeigen lassen und die relative Pfadangabe.(ein Punkt) fürbranch.<Name>.remoteverwenden. branch.<Name>.mergeOptions-
Setzt Standardoptionen für das Mergen in Branch <Name>. Die Syntax und unterstützten Optionen sind dieselben wie bei git-merge[1], aber Optionswerte, die Leerzeichen enthalten, werden derzeit nicht unterstützt.
branch.<Name>.rebase-
Wenn true, wird der Branch <Name> auf den abgerufenen Branch rebased, anstatt den Standard-Branch vom Standard-Remote zu mergen, wenn
gitpullausgeführt wird. Siehepull.rebase, um dies nicht branch-spezifisch zu tun.Wenn
merges(oder nurm), wird die Option--rebase-mergesangitrebaseübergeben, damit die lokalen Merge-Commits in den Rebase einbezogen werden (siehe git-rebase[1] für Details).Wenn der Wert
interactive(oder nuri) ist, wird der Rebase im interaktiven Modus ausgeführt.HINWEIS: Dies ist eine potenziell gefährliche Operation; verwenden Sie sie **nicht**, es sei denn, Sie verstehen die Auswirkungen (siehe git-rebase[1] für Details).
branch.<Name>.description-
Branch-Beschreibung, kann mit
gitbranch--edit-descriptionbearbeitet werden. Die Branch-Beschreibung wird automatisch demformat-patch-Cover-Letter oder derrequest-pull-Zusammenfassung hinzugefügt.
BEISPIELE
- Entwicklung von einem bekannten Tag starten
-
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 $ cd my2.6 $ git branch my2.6.14 v2.6.14 (1) $ git switch my2.6.14
-
Dieser Schritt und der nächste könnten zu einem einzigen Schritt mit "checkout -b my2.6.14 v2.6.14" kombiniert werden.
-
- Einen nicht benötigten Branch löschen
-
$ git clone git://git.kernel.org/.../git.git my.git $ cd my.git $ git branch -d -r origin/todo origin/html origin/man (1) $ git branch -D test (2)
-
Löscht die Remote-Tracking-Branches "todo", "html" und "man". Der nächste
gitfetchodergitpullwird sie wieder erstellen, es sei denn, Sie konfigurieren sie entsprechend. Siehe git-fetch[1]. -
Löscht den Branch "test", auch wenn der Branch "master" (oder welcher Branch auch immer gerade ausgecheckt ist) nicht alle Commits aus dem Test-Branch enthält.
-
- Auflisten von Branches von einem bestimmten Remote
-
$ git branch -r -l '<remote>/<pattern>' (1) $ git for-each-ref 'refs/remotes/<remote>/<pattern>' (2)
-
Die Verwendung von
-awürde <Remote> mit lokalen Branches vermischen, die zufällig mit demselben <Remote>-Muster präfixiert waren. -
for-each-refkann eine breite Palette von Optionen entgegennehmen. Siehe git-for-each-ref[1]
-
Muster müssen normalerweise in Anführungszeichen gesetzt werden.
ANMERKUNGEN
Wenn Sie einen Branch erstellen, zu dem Sie sofort wechseln möchten, ist es einfacher, den Befehl git switch mit seiner Option -c zu verwenden, um dasselbe mit einem einzigen Befehl zu tun.
Die Optionen --contains, --no-contains, --merged und --no-merged dienen vier verwandten, aber unterschiedlichen Zwecken.
-
--contains<commit> wird verwendet, um alle Branches zu finden, die besondere Aufmerksamkeit erfordern, wenn <commit> rebased oder amended würde, da diese Branches den angegebenen <commit> enthalten. -
--no-contains<commit> ist das Gegenteil davon, d. h. Branches, die den angegebenen <commit> nicht enthalten. -
--mergedwird verwendet, um alle Branches zu finden, die sicher gelöscht werden können, da diese Branches vollständig vonHEADenthalten sind. -
--no-mergedwird verwendet, um Branches zu finden, die für das Mergen inHEADin Frage kommen, da diese Branches nicht vollständig vonHEADenthalten sind.
Bei der Kombination mehrerer --contains- und --no-contains-Filter werden nur Referenzen angezeigt, die mindestens einen der --contains-Commits enthalten und keinen der --no-contains-Commits enthalten.
Bei der Kombination mehrerer --merged- und --no-merged-Filter werden nur Referenzen angezeigt, die von mindestens einem der --merged-Commits erreichbar sind und von keinem der --no-merged-Commits.
SIEHE AUCH
git-check-ref-format[1], git-fetch[1], git-remote[1], "Verständnis der Historie: Was ist ein Branch?" im Git User's Manual.
GIT
Teil der git[1] Suite