Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.51.1 → 2.53.0 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.40.1 → 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.39.4 → 2.39.5 no changes
-
2.39.3
2023-04-17
- 2.38.1 → 2.39.2 no changes
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.2 → 2.33.8 no changes
-
2.33.1
2021-10-12
- 2.31.1 → 2.33.0 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.23.1 → 2.27.1 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 → 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
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 no changes
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitbranch[--color[=<när>] |--no-color] [--show-current] [-v[--abbrev=<n> |--no-abbrev]] [--column[=<flaggor>] |--no-column] [--sort=<nyckel>] [--merged[<incheckning>]] [--no-merged[<incheckning>]] [--contains[<incheckning>]] [--no-contains[<incheckning>]] [--points-at<objekt>] [--format=<format>] [(-r|--remotes) | (-a|--all)] [--list] [<mönster>…]gitbranch[--track[=(direct|inherit)] |--no-track] [-f] [--recurse-submodules] <branch-name> [<start-punkt>]gitbranch(--set-upstream-to=<uppströms>|-u<uppströms>) [<gren-namn>]gitbranch--unset-upstream[<gren-namn>]gitbranch(-m|-M) [<old-branch>] <ny-gren>gitbranch(-c|-C) [<old-branch>] <ny-gren>gitbranch(-d|-D) [-r] <gren-namn>…gitbranch--edit-description[<gren-namn>]
BESKRIVNING
Om --list anges, eller om det inte finns några argument som inte är alternativ, listas befintliga grenar; den aktuella grenen markeras i grönt och med en asterisk. Alla grenar som är utcheckade i länkade arbetsträd markeras i cyan och markeras med ett plustecken. Alternativet -r gör att grenarna för fjärrspårning listas, och alternativet -a visar både lokala och fjärrgrenar.
Om ett <mönster> anges används det som ett jokertecken i skalet för att begränsa utdata till matchande grenar. Om flera mönster anges visas en gren om den matchar något av mönstren.
Observera att när du anger ett <mönster> måste du använda --list; annars kan kommandot tolkas som att en gren skapas.
Med --contains visas endast de grenar som innehåller den namngivna incheckningen (med andra ord, de grenar vars top-incheckning är ättlingar till den namngivna incheckningen), --no-contains inverterar den. Med --merged listas endast grenar som har sammanfogats med den namngivna incheckningen (dvs. de grenar vars top-incheckningar är nåbara från den namngivna incheckningen). Med --no-merged listas endast grenar som inte har sammanfogats med den namngivna incheckningen. Om argumentet <incheckning> saknas används som standard HEAD (dvs. spetsen på den aktuella grenen).
Kommandots andra form skapar en ny grenhuvud med namnet <gren-namn> som pekar på den aktuella HEAD, eller <start-punkt> om angivet. Som ett specialfall, för <start-punkt>, kan du använda <rev-A>...<rev-B> som en genväg för sammanslagningsbasen för <rev-A> och <rev-B> om det finns exakt en sammanslagningsbas. Du kan utelämna högst en av <rev-A> och <rev-B>, i vilket fall standardvärdet är HEAD.
Observera att detta kommer att skapa den nya grenen, men det kommer inte att växla arbetsträdet till den; använd git switch <ny-gren> för att växla till den nya grenen.
När en lokal gren startas från en fjärrspårningsgren, konfigurerar Git grenen (specifikt konfigurationsposterna branch.<namn>.remote och branch.<namn>.merge) så att git pull korrekt sammanfogas från fjärrspårningsgrenen. Detta beteende kan ändras via den globala konfigurationsflaggan branch.autoSetupMerge. Den inställningen kan åsidosättas genom att använda alternativen --track och --no-track, och ändras senare med git branch --set-upstream-to.
Med alternativet -m eller -M kommer <gammal-gren> att byta namn till <ny-gren>. Om <gammal-gren> hade en motsvarande reflog, byts namn på den för att matcha <ny-gren>, och en reflog-post skapas för att komma ihåg namnbytet på grenen. Om <ny-gren> finns måste -M användas för att tvinga fram namnbytet.
Alternativen -c och -C har exakt samma semantik som -m och -M, förutom att grenen inte byter namn utan kopieras till ett nytt namn, tillsammans med dess konfiguration och reflogg.
Med alternativet -d eller -D kommer <gren-namn> att raderas. Du kan ange mer än en gren för borttagning. Om grenen för närvarande har en reflogg kommer även refloggen att raderas.
Använd -r tillsammans med -d för att ta bort grenar för fjärrspårning. Observera att det bara är vettigt att ta bort grenar för fjärrspårning om de inte längre finns i fjärrförvaret eller om git fetch konfigurerades att inte hämta dem igen. Se även under-kommandot prune i git-remote[1] för ett sätt att rensa upp alla föråldrade grenar för fjärrspårning.
ALTERNATIV
-
-d -
--delete -
Ta bort en gren. Grenen måste vara helt sammanfogad i sin uppströmsgren, eller i
HEADom ingen uppströmsgren har angetts med--trackeller--set-upstream-to. -
-D -
Genväg för
--delete--force. -
--create-reflog -
Create the branch’s reflog. This activates recording of all changes made to the branch ref, enabling use of date based sha1 expressions such as <branch-name>
@{yesterday}. Note that in non-bare repositories, reflogs are usually enabled by default by thecore.logAllRefUpdatesconfig option. The negated form--no-create-reflogonly overrides an earlier--create-reflog, but currently does not negate the setting ofcore.logAllRefUpdates. -
-f -
--force -
Återställ <gren-namn> till <start-punkt>, även om <gren-namn> redan finns. Utan
-fvägrargitbranchatt ändra en befintlig gren. I kombination med-d(eller--delete) tillåts borttagning av grenen oavsett dess sammanslagna status, eller om den ens pekar på en giltig incheckning. I kombination med-m(eller--move) tillåts namnbyte av grenen även om det nya grennamnet redan finns, detsamma gäller för-c(eller--copy).Observera att
gitbranch-f<gren-namn> [<start-punkt>], även med-f, vägrar att ändra en befintlig branch <gren-namn> som är utcheckad i ett annat arbetsträd länkat till samma förvar. -
-m -
--move -
Flytta/byt namn på en gren, tillsammans med dess konfiguration och reflog.
-
-M -
Genväg för
--move--force. -
-c -
--copy -
Kopiera en gren, tillsammans med dess konfiguration och reflogg.
-
-C -
Genväg för
--copy--force. -
--color[=<när>] -
Färglägg grenar för att markera aktuella, lokala och fjärrspårande grenar. Värdet måste vara
always(standard),neverellerauto. -
--no-color -
Stäng av grenfärger, även när konfigurationsfilen anger standardfärg som utdata. Samma som
--color=never. -
-i -
--ignore-case -
Sorterings- och filtreringsgrenar är skiftlägesokänsliga.
-
--omit-empty -
Skriv inte ut en nyrad efter formaterade referenser där formatet expanderar till den tomma strängen.
-
--column[=<alternativ>] -
--no-column -
Visa grenlista i kolumner. Se konfigurationsvariabeln
column.branchför alternativsyntax.--columnoch--no-columnutan alternativ motsvararalwaysrespektivenever.Det här alternativet är endast tillämpligt i icke-utförligt läge.
-
--sort=<nyckel> -
Sortera baserat på <nyckel>. Prefixet
-för att sortera i fallande ordning efter värdet. Du kan använda alternativet--sort=<nyckel> flera gånger, i vilket fall den sista nyckeln blir primärnyckeln. Nycklarna som stöds är desamma som i git-for-each-ref[1]. Sorteringsordningen är som standard det värde som är konfigurerat för variabelnbranch.sortom den finns, eller sortering baserat på hela refnamnet (inklusive prefixetrefs/...). Detta listar först friståendeHEAD(om det finns) sedan lokala grenar och slutligen fjärrspårningsgrenar. Se git-config[1]. -
-r -
--remotes -
Lista eller ta bort (om det används med
-d) grenarna för fjärrspårning. Kombinera med--listför att matcha det/de valfria mönstret/mönstren. -
-a -
--all -
Lista både fjärrspårningsgrenar och lokala grenar. Kombinera med
--listför att matcha valfria mönster. -
-l -
--list -
Lista grenar. Med valfritt <mönster>..., t.ex.
gitbranch--listmaint-*', listas endast de grenar som matchar mönstret/mönstren. -
--show-current -
Skriv ut namnet på den aktuella grenen. I det fristående
HEAD-tillståndet skrivs ingenting ut. -
-v -
-vv -
--verbose -
I listläge, visa sha1 och inchecknings-ämnesraden för varje head, tillsammans med relationen till uppströmsgrenen (om någon). Om det anges två gånger, skriv ut sökvägen till det länkade arbetsträdet (om någon) och namnet på uppströmsgrenen (se även
gitremoteshow<fjärr>). Observera att det aktuella arbetsträdetsHEADinte kommer att få sin sökväg utskriven (det kommer alltid att vara din aktuella katalog). -
-q -
--quiet -
Var tystare när du skapar eller tar bort en gren, och undertryck icke-felmeddelanden.
-
--abbrev=<n> -
I den utförliga listan som visar inchecknings-objektets namn, visa det kortaste prefixet som är minst <n> hexdigits långt och som unikt refererar till objektet. Standardvärdet är 7 och kan åsidosättas av konfigurationsalternativet
core.abbrev. -
--no-abbrev -
Visa de fullständiga sha1:erna i utdatalistan istället för att förkorta dem.
-
-t -
--track[=(direct|inherit)] -
När du skapar en ny gren, konfigurera konfigurationsposterna
branch.<namn>.remoteochbranch.<namn>.mergeför att ställa in spårningskonfigurationen "uppströms" för den nya grenen. Denna konfiguration kommer att instruera git att visa förhållandet mellan de två grenarna igitstatusochgitbranch-v. Dessutom dirigerar dengitpullutan argument att hämta från uppströms när den nya grenen är utcheckad.Den exakta uppströmsgrenen väljs beroende på det valfria argumentet:
-t,--trackeller--track=directbetyder att själva startpunktsgrenen används som uppströmsgren;--track=inheritbetyder att kopiera uppströmskonfigurationen för startpunktsgrenen.Konfigurationsvariabeln
branch.autoSetupMergeanger hurgitswitch,gitcheckoutochgitbranchska bete sig när varken--trackeller--no-trackär angivna:Standardalternativet,
true, beter sig som om--track=directanges när startpunkten är en fjärrspårningsgren.falsebeter sig som om--no-trackanges.alwaysbeter sig som om--track=directanges.inheritbeter sig som om--track=inheritanges.simplebeter sig som om--track=directanges endast när <start-punkt> är en fjärrspårningsgren och den nya grenen har samma namn som fjärrgrenen.Se git-pull[1] och git-config[1] för ytterligare diskussion om hur alternativen
branch.<namn>.remoteochbranch.<namn>.mergeanvänds. -
--no-track -
Konfigurera inte "uppströms"-konfigurationen, även om konfigurationsvariabeln
branch.autoSetupMergeär inställd. -
--recurse-submodules -
DETTA ALTERNATIV ÄR EXPERIMENTELLT! Gör att det aktuella kommandot rekursivt går in i undermoduler om
submodule.propagateBranchesär aktiverat. Sesubmodule.propagateBranchesi git-config[1]. För närvarande stöds endast skapande av branches.När den används vid skapandet av en gren skapas en ny gren <gren-namn> i superprojektet och alla undermoduler i superprojektets <start-punkt>. I undermoduler pekar grenen på undermodulens incheckning i superprojektets <start-punkt>, men grenens spårningsinformation konfigureras baserat på undermodulens grenar och fjärrkontroller, t.ex.
gitbranch--recurse-submodulestopicorigin/mainskapar undermodulens gren "topic" som pekar på undermodulens incheckning i superprojektets "origin/main", men spårar undermodulens "origin/main". -
--set-upstream -
Eftersom det här alternativet hade förvirrande syntax stöds det inte längre. Använd
--trackeller--set-upstream-toistället. -
-u<uppströms> -
--set-upstream-to=<uppströms> -
Ställ in spårningsinformationen för <gren-namn> så att <uppströms> betraktas som <gren-namn>_s uppströmsgren. Om ingen _<gren-namn> anges används som standard den aktuella grenen.
-
--unset-upstream -
Ta bort uppströmsinformationen för <gren-namn>. Om ingen gren anges används som standard den aktuella grenen.
-
--edit-description -
Öppna en editor och redigera texten för att förklara vad grenen är till för, så att den kan användas av olika andra kommandon (t.ex.
format-patch,request-pullochmerge(om aktiverat)). Flera raders förklaringar kan användas. -
--contains[<incheckning>] -
Lista endast grenar som innehåller <incheckning> (
HEADom inget anges). Implicerar--list. -
--no-contains[<incheckning>] -
Lista endast grenar som inte innehåller <incheckning> (
HEADom inget anges). Implicerar--list. -
--merged[<incheckning>] -
Lista endast grenar vars tips kan nås från <incheckning> (
HEADom inget anges). Implicerar--list. -
--no-merged[<incheckning>] -
Lista endast grenar vars tips inte kan nås från <incheckning> (
HEADom inget anges). Implicerar--list. -
--points-at<objekt> -
Lista endast grenar av <objekt>.
-
--format<format> -
En sträng som interpolerar %(fältnamn) från en grenreferens som visas och objektet den pekar på. <format> är samma sak som för git-for-each-ref[1].
- <gren-namn>
-
Namnet på den gren som ska skapas eller tas bort. Det nya gren-namnet måste klara alla kontroller som definieras av git-check-ref-format[1]. Vissa av dessa kontroller kan begränsa antalet tecken som är tillåtna i ett gren-namn.
- <start-punkt>
-
Det nya grenhuvudet kommer att peka på denna incheckning. Det kan anges som ett gren-namn, ett commit-id eller en tagg. Om detta alternativ utelämnas kommer det nuvarande
HEADatt användas istället. - <gammal-gren>
-
Namnet på en befintlig gren. Om det här alternativet utelämnas kommer namnet på den aktuella grenen att användas istället.
- <ny-gren>
-
Det nya namnet för en befintlig gren. Samma begränsningar som för <gren-namn> gäller.
KONFIGURATION
pager.branch respekteras endast vid lista av brancher, dvs. när --list används eller antyds. Standardinställningen är att använda en bläddrare. Se git-config[1].
Allt ovanför den här raden i det här avsnittet finns inte med i dokumentationen för git-config[1]. Innehållet som följer är detsamma som det som finns där:
|
Warning
|
Missing See original version for this content. |
EXEMPEL
- Starta utveckling från en känd tagg
-
$ 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
-
Detta steg och nästa kan kombineras till ett enda steg med "checkout -b my2.6.14 v2.6.14".
-
- Ta bort en onödig gren
-
$ 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)
-
Ta bort grenarna för fjärrspårning "todo", "html" och "man". Nästa
gitfetchellergitpullkommer att skapa dem igen om du inte konfigurerar dem att inte göra det. Se git-fetch[1]. -
Ta bort grenen "test" även om grenen "master" (eller vilken gren som för närvarande är utcheckad) inte har alla incheckningar från testgrenen.
-
- Lista grenar från en specifik fjärr
-
$ git branch -r -l '<fjärr>/<mönster>' (1) $ git for-each-ref 'refs/remotes/<fjärr>/<mönster>' (2)
-
Att använda
-askulle sammanblanda <fjärr> med alla lokala grenar som du råkar ha fått prefixet med samma <fjärr>-mönster. -
for-each-refkan ha en mängd olika alternativ. Se git-for-each-ref[1]
-
Mönster kräver normalt citering.
NOTERINGAR
Om du skapar en gren som du vill byta till omedelbart är det enklare att använda kommandot git switch med dess -c-flagga för att göra samma sak med ett enda kommando.
Alternativen --contains, --no-contains, --merged och --no-merged tjänar fyra relaterade men olika syften:
-
--contains<incheckning> används för att hitta alla grenar som behöver särskild uppmärksamhet om <incheckning> skulle ombaseras eller ändras, eftersom dessa grenar innehåller den angivna <incheckning>. -
--no-contains<incheckning> är motsatsen till det, dvs. grenar som inte innehåller den angivna <incheckning>. -
--mergedis used to find all branches which can be safely deleted, since those branches are fully contained byHEAD. -
--no-mergedanvänds för att hitta grenar som är kandidater för sammanslagning medHEAD, eftersom dessa grenar inte helt och hållet ingår iHEAD.
När man kombinerar flera --contains- och --no-contains-filter visas endast referenser som innehåller minst en av --contains-commits och inte innehåller någon av --no-contains-incheckningar.
När man kombinerar flera --merged- och --no-merged-filter visas endast referenser som är nåbara från minst en av --merged-commits och från ingen av --no-merged-incheckningar.
SE ÄVEN
git-check-ref-format[1], git-fetch[1], git-remote[1], "Understanding history: What is a branch?" in the Git User’s Manual.
GIT
En del av git[1]-sviten