Svenska ▾ Topics ▾ Latest version ▾ git-branch last updated in 2.51.0

NAMN

git-branch - Lista, skapa eller ta bort grenar

SYNOPSIS

git branch [--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>…​]
git branch [--track[=(direct|inherit)] | --no-track] [-f]
	   [--recurse-submodules] <branch-name> [<start-punkt>]
git branch (--set-upstream-to=<uppströms>|-u <uppströms>) [<gren-namn>]
git branch --unset-upstream [<gren-namn>]
git branch (-m|-M) [<old-branch>] <ny-gren>
git branch (-c|-C) [<old-branch>] <ny-gren>
git branch (-d|-D) [-r] <gren-namn>…​
git branch --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 HEAD om ingen uppströmsgren har angetts med --track eller --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 the core.logAllRefUpdates config option. The negated form --no-create-reflog only overrides an earlier --create-reflog, but currently does not negate the setting of core.logAllRefUpdates.

-f
--force

Återställ <gren-namn> till <start-punkt>, även om <gren-namn> redan finns. Utan -f vägrar git branch att ä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 git branch -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), never eller auto.

--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.branch för alternativsyntax. --column och --no-column utan alternativ motsvarar always respektive never.

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 variabeln branch.sort om den finns, eller sortering baserat på hela refnamnet (inklusive prefixet refs/...). Detta listar först fristående HEAD (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 --list för att matcha det/de valfria mönstret/mönstren.

-a
--all

Lista både fjärrspårningsgrenar och lokala grenar. Kombinera med --list för att matcha valfria mönster.

-l
--list

Lista grenar. Med valfritt <mönster>..., t.ex. git branch --list maint-*', 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 git remote show <fjärr>). Observera att det aktuella arbetsträdets HEAD inte 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>.remote och branch.<namn>.merge fö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 i git status och git branch -v. Dessutom dirigerar den git pull utan 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, --track eller --track=direct betyder att själva startpunktsgrenen används som uppströmsgren; --track=inherit betyder att kopiera uppströmskonfigurationen för startpunktsgrenen.

Konfigurationsvariabeln branch.autoSetupMerge anger hur git switch, git checkout och git branch ska bete sig när varken --track eller --no-track är angivna:

Standardalternativet, true, beter sig som om --track=direct anges när startpunkten är en fjärrspårningsgren. false beter sig som om --no-track anges. always beter sig som om --track=direct anges. inherit beter sig som om --track=inherit anges. simple beter sig som om --track=direct anges 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>.remote och branch.<namn>.merge anvä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. Se submodule.propagateBranches i 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. git branch --recurse-submodules topic origin/main skapar 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 --track eller --set-upstream-to istä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-pull och merge (om aktiverat)). Flera raders förklaringar kan användas.

--contains [<incheckning>]

Lista endast grenar som innehåller <incheckning> (HEAD om inget anges). Implicerar --list.

--no-contains [<incheckning>]

Lista endast grenar som inte innehåller <incheckning> (HEAD om inget anges). Implicerar --list.

--merged [<incheckning>]

Lista endast grenar vars tips kan nås från <incheckning> (HEAD om inget anges). Implicerar --list.

--no-merged [<incheckning>]

Lista endast grenar vars tips inte kan nås från <incheckning> (HEAD om 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 HEAD att 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 sv/config/branch.adoc

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
  1. 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)
  1. Ta bort grenarna för fjärrspårning "todo", "html" och "man". Nästa git fetch eller git pull kommer att skapa dem igen om du inte konfigurerar dem att inte göra det. Se git-fetch[1].

  2. 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)
  1. Att använda -a skulle sammanblanda <fjärr> med alla lokala grenar som du råkar ha fått prefixet med samma <fjärr>-mönster.

  2. for-each-ref kan 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>.

  • --merged is used to find all branches which can be safely deleted, since those branches are fully contained by HEAD.

  • --no-merged används för att hitta grenar som är kandidater för sammanslagning med HEAD, eftersom dessa grenar inte helt och hållet ingår i HEAD.

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.

GIT

En del av git[1]-sviten