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.54.0
2026-04-20
-
2.53.0
2026-02-02
-
2.52.0
2025-11-17
- 2.48.1 → 2.51.2 no changes
-
2.48.0
2025-01-10
- 2.43.2 → 2.47.3 no changes
-
2.43.1
2024-02-09
- 2.42.2 → 2.43.0 no changes
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
- 2.39.1 → 2.41.3 no changes
-
2.39.0
2022-12-12
- 2.36.1 → 2.38.5 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.33.1 → 2.34.8 no changes
-
2.33.0
2021-08-16
- 2.31.1 → 2.32.7 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.22.1 → 2.27.1 no changes
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 no changes
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 no changes
-
2.19.2
2018-11-21
- 2.19.1 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
- 2.14.6 → 2.15.4 no changes
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.11.4 no changes
-
2.10.5
2017-09-22
-
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
2017-05-05
SYNOPSIS
gitworktreeadd[-f] [--detach] [--checkout] [--lock[--reason<sträng>]] [--orphan] [(-b|-B) <ny-gren>] <sökväg> [<incheckningslik>]gitworktreelist[-v|--porcelain[-z]]gitworktreelock[--reason<string>] <arbetsträd>gitworktreemove<worktree> <ny-sökväg>gitworktreeprune[-n] [-v] [--expire<upphör>]gitworktreeremove[-f] <arbetsträd>gitworktreerepair[<sökväg>…]gitworktreeunlock<arbetsträd>
BESKRIVNING
Hantera flera arbetsträd som är kopplade till samma kodförråd.
Ett Git-kodförråd kan stödja flera arbetsträd, så att mer än en gren kan checkas ut åt gången. Med git worktree add associeras ett nytt arbetsträd med kodförrådet, tillsammans med ytterligare metadata som skiljer det arbetsträdet från andra i samma kodförråd. Arbetsträdet, tillsammans med dessa metadata, kallas ett "worktree".
Detta nya arbetsträd kallas ett "länkat arbetsträd" i motsats till det "huvudarbetsträd" som skapats av git-init[1] eller git-clone[1]. Ett kodförråd har ett huvudarbetsträd (om det inte är ett bart kodförråd) och noll eller fler länkade arbetsträd. När ett länkat arbetsträd inte längre behövs tas det bort med git worktree remove.
I sin enklaste form skapar git worktree add <sökväg> automatiskt en ny gren vars namn är den sista komponenten i <sökväg>, vilket är praktiskt om arbete planeras med ett nytt ämne. Till exempel skapar git worktree add ../hotfix en ny gren hotfix och checkar ut den vid sökvägen ../hotfix. För att i stället arbeta med en befintlig gren i ett nytt arbetsträd används git worktree add <sökväg> <gren>. Å andra sidan, om avsikten bara är att göra några experimentella ändringar eller testa utan att störa befintlig utveckling, är det ofta praktiskt att skapa ett engångs-arbetsträd som inte är associerat med någon gren. Till exempel skapar git worktree add -d <sökväg> ett nytt arbetsträd med en fristående HEAD vid samma incheckning som den aktuella grenen.
Om ett arbetsträd tas bort utan att använda git worktree remove kommer dess tillhörande administrativa filer, som finns i kodförrådet (se "DETALJER" nedan), så småningom att tas bort automatiskt (se gc.worktreePruneExpire i git-config[1]), eller så kan git worktree prune köras i huvudarbetsträdet eller i något länkat arbetsträd för att rensa upp eventuella inaktuella administrativa filer.
Om arbetsträdet för ett länkat arbetsträd lagras på en bärbar enhet eller nätverksresurs som inte alltid är monterad, kan rensning av dess administrativa filer förhindras genom att köra kommandot git worktree lock och valfritt ange --reason för att förklara varför arbetsträdet är låst.
KOMMANDON
-
add<sökväg> [<incheckningslik>] -
Skapa ett arbetsträd vid <sökväg> och checka ut <incheckningslik> i det. Det nya arbetsträdet länkas till det aktuella kodförrådet och delar allt utom filer som är specifika för arbetsträdet, såsom
HEAD,indexosv. För enkelhetens skull kan <incheckningslik> vara ett rent "-", vilket är synonymt med@{-1}.Om <incheckningslik> är ett grennamn (kalla det <gren>) och inte hittas, och varken
-b,-Beller--detachanvänds, men det finns en spårningsgren med matchande namn i exakt en fjärr (kalla den <fjärr>), behandla det som likvärdigt med:$ git worktree add --track -b <gren> <sökväg> <fjärr>/<gren>
Om grenen finns i flera fjärrar och en av dem anges med konfigurationsvariabeln
checkout.defaultRemote, används den för att göra tolkningen entydig, även om <gren> inte är unik över alla fjärrar. Sätt t.ex.checkout.defaultRemote=originför att alltid checka ut fjärrgrenar därifrån om <gren> är tvetydig men finns på fjärrenorigin. Se ävencheckout.defaultRemotei git-config[1].Om <incheckningslik> utelämnas och varken
-b,-Beller--detachanvänds, associeras det nya arbetsträdet för enkelhetens skull med en gren (kalla den <gren>) med namn efter$(basename<sökväg>). Om <gren> inte finns skapas automatiskt en ny gren baserad påHEAD, som om-b<gren> hade angetts. Om <gren> finns checkas den ut i det nya arbetsträdet, om den inte redan är utcheckad någon annanstans; annars vägrar kommandot att skapa arbetsträdet (om inte--forceanvänds).Om <incheckningslik> utelämnas, varken
--detacheller--orphananvänds, och det inte finns några giltiga lokala grenar (eller fjärrgrenar om--guess-remoteanges), associeras det nya arbetsträdet för enkelhetens skull med en ny ofödd gren med namnet <gren> (efter$(basename<sökväg>) om varken-beller-Banvänds), som om--orphanskickades till kommandot. Om kodförrådet har en fjärr och--guess-remoteanvänds men inga fjärr- eller lokala grenar finns, misslyckas kommandot med en varning som påminner användaren om att först hämta från fjärren (eller åsidosätta med-f/--force). -
list -
Lista detaljer om varje arbetsträd. Huvudarbetsträdet listas först, följt av vart och ett av de länkade arbetsträden. Utdata detaljerna inkluderar om arbetsträdet är bart, vilken revision som för närvarande är utcheckad, vilken gren som för närvarande är utcheckad (eller "detached HEAD" (frikopplad HEAD) om ingen), "locked" om arbetsträdet är låst, "prunable" om arbetsträdet kan beskäras med kommandot
prune. -
lock -
Om ett arbetsträd finns på en portabel enhet eller nätverksresurs som inte alltid är monterad, lås det för att förhindra att dess administrativa filer rensas automatiskt. Detta förhindrar också att det flyttas eller tas bort. En orsak till låsningen kan också anges med
--reason. -
move -
Flytta ett arbetsträd till en ny plats. Observera att huvudarbetsträdet eller länkade arbetsträd som innehåller undermoduler inte kan flyttas med detta kommando. (Kommandot
gitworktreerepairkan dock återupprätta anslutningen till länkade arbetsträd om du flyttar huvudarbetsträdet manuellt.) -
prune -
Remove worktree information in
$GIT_DIR/worktreesfor worktrees whose working trees are missing. Useful after manually removing a working tree that is no longer needed (but use "git worktree remove" next time you want to do so). Also, if you moved a working tree elsewhere causing the worktree information to become dangling, see "git worktree repair" to reconnect the worktree to the new working tree location. -
remove -
Ta bort ett arbetsträd. Endast rena arbetsträd (inga ospårade filer och inga modifieringar i spårade filer) kan tas bort. Orena arbetsträd eller arbetsträd med undermoduler kan tas bort med
--force. Huvudarbetsträdet kan inte tas bort. -
repair[<sökväg>...] -
Reparera arbetsträdets administrativa filer, om möjligt , om de har blivit skadade eller föråldrade på grund av externa faktorer.
Till exempel, om huvudarbetsträdet (eller det bara kodförrådet) flyttas, kommer länkade arbetsträd inte att kunna hitta det. Att köra
reparerai huvudarbetsträdet kommer att återupprätta anslutningen från länkade arbetsträd tillbaka till huvudarbetsträdet.På samma sätt, om arbetsträdet för ett länkat arbetsträd flyttas utan att använda
gitworktreemove, kommer huvudarbetsträdet (eller det bara kodförrådet) inte att kunna hitta det. Att körarepairi det nyligen flyttade arbetsträdet kommer att återupprätta anslutningen. Om flera länkade arbetsträd flyttas, kommer att körarepairfrån valfritt arbetsträd med varje träds nya <sökväg> som argument, att återupprätta anslutningen till alla angivna sökvägar.Om både huvudarbetsträdet och länkade arbetsträd har flyttats eller kopierats manuellt, kommer alla anslutningar i båda riktningarna att återställas om man kör
reparerai huvudarbetsträdet och anger den nya <sökvägen> för varje länkat arbetsträd. -
unlock -
Lås upp ett arbetsträd, så att det kan beskäras, flyttas eller tas bort.
ALTERNATIV
-
-f -
--force -
Som standard vägrar
addatt skapa ett nytt arbetsträd när <incheckningslik> är ett grennamn som redan är utcheckat i ett annat arbetsträd, eller om <sökväg> redan är tilldelad ett arbetsträd men saknas (till exempel om <sökväg> har tagits bort manuellt). Flaggan åsidosätter dessa skydd. För att lägga till en saknad men låst arbetsträdssökväg anges--forcetvå gånger.movevägrar att flytta ett låst arbetsträd om inte--forceanges två gånger. Om destinationen redan är tilldelad ett annat arbetsträd men saknas (till exempel om <ny-sökväg> raderades manuellt), så tillåter--forceatt flytten fortsätter; använd--forcetvå gånger om destinationen är låst.removevägrar att ta bort ett orent arbetsträd om inte--forceanvänds. För att ta bort ett låst arbetsträd, ange--forcetvå gånger. -
-b<ny-gren> -
-B<ny-gren> -
Med
addskapas en ny gren med namnet <ny-gren> som börjar vid <incheckningslik>, och checkar ut <ny-gren> i det nya arbetsträdet. Om <incheckningslik> utelämnas användsHEADsom standard. Som standard vägrar-batt skapa en ny gren om den redan finns.-Båsidosätter detta och återställer <ny-gren> till <incheckningslik>. -
-d -
--detach -
Med
add, koppla bortHEADi det nya arbetsträdet. Se "FRÅNKOPPLAT HEAD" i git-checkout[1]. -
--checkout -
--no-checkout -
Som standard checkar
addut <incheckningslik>, men--no-checkoutkan användas för att undertrycka utcheckning för att göra anpassningar, som att konfigurera gles-utcheckning. Se "gles utcheckning" i git-read-tree[1]. -
--guess-remote -
--no-guess-remote -
Med
worktreeadd<sökväg>, utan <incheckningslik>, skapas i stället för en ny gren frånHEADen ny gren baserad på den fjärrspårade grenen om det finns en sådan i exakt en fjärr med samma basnamn som <sökväg>. Den fjärrspårade grenen markeras då som "uppströms" för den nya grenen.Det kan också ställas in som standardbeteende genom att använda konfigurationsalternativet
worktree.guessRemote. -
--relative-paths -
--no-relative-paths -
Länka arbetsträd med relativa sökvägar eller absoluta sökvägar (standard). Åsidosätter konfigurationsalternativet
worktree.useRelativePaths, se git-config[1].Med
repair(reparera) uppdateras länkfilerna om det finns en absolut/relativ avvikelse, även om länkarna är korrekta. -
--track -
--no-track -
När en ny gren skapas, om <incheckningslik> är en gren, markera den som "uppströms" från den nya grenen. Detta är standardvärdet om <incheckningslik> är en fjärrspårad gren. Se
--tracki git-branch[1] för mer information. -
--lock -
Håll arbetsträdet låst efter skapandet. Detta motsvarar
gitworktreelockeftergitworktreeadd, men utan en kapplöpningsrisk. -
-n -
--dry-run -
Med
prune(beskär), ta inte bort något; rapportera bara vad det skulle ta bort. -
--orphan -
Med
add, lägg till och gör det nya arbetsträdet och indexet tomt, och associera arbetsträdet med en ny ofödd gren med namnet <ny-gren>. -
--porcelain -
Med
list, lista utdata i ett lätttolkat format för skript. Detta format kommer att förbli stabilt i alla Git-versioner och oavsett användarkonfiguration. Det rekommenderas att kombinera detta med-z. Se nedan för detaljer. -
-z -
Avsluta varje rad med NUL i stället för nyrad när
--porcelainanges medlist. Detta gör det möjligt att analysera utdata när en arbetsträdssökväg innehåller ett nyradstecken. -
-q -
--quiet -
Med
add, undertryck återkopplingsmeddelanden. -
-v -
--verbose -
Med
prune(beskär), rapportera alla borttagningar.Med
list, mata ut ytterligare information om arbetsträd (se nedan). -
--expire<tid> -
Med
prune, beskär saknade arbetsträd bara om de är äldre än <tid>.Med
list, annotera saknade arbetsträd som beskärningsbara om de är äldre än <tid>. -
--reason<sträng> -
Med
lockeller medadd--lock, en förklaring till varför arbetsträdet är låst. - <arbetsträd>
-
Arbetsträd kan identifieras med hjälp av sökväg, antingen relativ eller absolut.
Om den sista sökvägskomponenten i arbetsträdets sökväg är unik bland arbetsträden kan den användas för att identifiera ett arbetsträd. Om du till exempel bara har två arbetsträd, vid
/abc/def/ghioch/abc/def/ggg, så räckerghiellerdef/ghiför att peka på det förra arbetsträdet.
REFS
När man använder flera arbetsträd, delas vissa referenser mellan alla arbetsträd, men andra är specifika för ett enskilt arbetsträd. Ett exempel är HEAD, vilket är olika för varje arbetsträd. Det här avsnittet handlar om delningsreglerna och hur man kommer åt referenser för ett arbetsträd från ett annat.
Generellt sett är alla pseudoreferenser per arbetsträd och alla referenser som börjar med refs/ delas. Pseudoreferenser är sådana som HEAD, som ligger direkt under $GIT_DIR i stället för i $GIT_DIR/refs. Det finns dock undantag: referenser i refs/bisect, refs/worktree och refs/rewritten delas inte.
Referenser som är per arbetsträd kan fortfarande nås från ett annat arbetsträd via två speciella sökvägar, main-worktree och worktrees. Den förra ger åtkomst till referenser per arbetsträd för huvudarbetsträdet, medan den senare ger åtkomst till alla länkade arbetsträd.
Till exempel, main-worktree/HEAD eller main-worktree/refs/bisect/good upplöses till samma värde som huvudarbetsträdets HEAD respektive refs/bisect/good. På liknande sätt är worktrees/foo/HEAD eller worktrees/bar/refs/bisect/bad samma som $GIT_COMMON_DIR/worktrees/foo/HEAD och $GIT_COMMON_DIR/worktrees/bar/refs/bisect/bad.
För att komma åt referenser är det bäst att inte titta direkt i $GIT_DIR. Använd i stället kommandon som git-rev-parse[1] eller git-update-ref[1], som hanterar referenser korrekt.
KONFIGURATIONSFIL
Som standard delas kodförrådets config-fil mellan alla arbetsträd. Om konfigurationsvariablerna core.bare eller core.worktree finns i den gemensamma konfigurationsfilen och extensions.worktreeConfig är inaktiverat, kommer de endast att tillämpas på huvudarbetsträdet.
För att få en arbetsträdsspecifik konfiguration kan du aktivera tillägget worktreeConfig, t.ex.:
$ git config extensions.worktreeConfig true
I det här läget lagras den specifika konfigurationen i sökvägen som anges av git rev-parse --git-path config.worktree. Konfiguration kan läggas till eller uppdateras i den här filen med git config --worktree. Äldre Git-versioner kommer att vägra åtkomst till kodförråd med det här tillägget.
Observera att i den här filen, är undantaget för core.bare och core.worktree borta. Om de finns i $GIT_DIR/config måste du flytta dem till config.worktree i huvudarbetsträdet. Du kan också ta tillfället i akt att granska och flytta annan konfiguration som du inte vill dela med alla arbetsträd:
-
core.worktreeska aldrig delas. -
core.bareska inte delas om värdet ärcore.bare=true. -
core.sparseCheckoutbör inte delas, såvida du inte är säker på att du alltid använder gles utcheckning för alla arbetsträd.
Se dokumentationen för extensions.worktreeConfig i git-config[1] för mer information.
DETALJER
Varje länkat arbetsträd har en privat underkatalog i kodförrådets katalog $GIT_DIR/worktrees. Namnet på den privata underkatalogen är vanligtvis basnamnet på det länkade arbetsträdets sökväg, eventuellt tillagt med ett nummer för att göra det unikt. Till exempel, när $GIT_DIR=/sökväg/main/.git skapar kommandot git worktree add /sökväg/annan/test-next next det länkade arbetsträdet i /sökväg/annan/test-next och skapar även en $GIT_DIR/worktrees/test-next-katalog (eller $GIT_DIR/worktrees/test-next1 om test-next redan är upptaget).
Inom ett länkat arbetsträd är $GIT_DIR inställt att peka till denna privata katalog (t.ex. /sökväg/main/.git/worktrees/test-next i exemplet) och $GIT_COMMON_DIR är inställt att peka tillbaka till huvudarbetsträdets $GIT_DIR (t.ex. /sökväg/main/.git). Dessa inställningar görs i en .git-fil som finns i den översta katalogen i det länkade arbetsträdet.
Sökvägsupplösning via git rev-parse --git-path använder antingen $GIT_DIR eller $GIT_COMMON_DIR beroende på sökvägen. Till exempel, i det länkade arbetsträdet returnerar git rev-parse --git-path HEAD /sökväg/main/.git/worktrees/test-next/HEAD (inte /sökväg/annan/test-next/.git/HEAD eller /sökväg/main/.git/HEAD) medan git rev-parse --git-path refs/heads/master använder $GIT_COMMON_DIR och returnerar /sökväg/main/.git/refs/heads/master, eftersom referenser delas mellan alla arbetsträd, förutom refs/bisect, refs/worktree och refs/rewritten.
Se gitrepository-layout[5] för mer information. Tumregeln är att inte göra några antaganden om huruvida en sökväg tillhör $GIT_DIR eller $GIT_COMMON_DIR när du behöver komma åt något direkt i $GIT_DIR. Använd git rev-parse --git-path för att få den slutliga sökvägen.
Om ett länkat arbetsträd flyttas manuellt måste gitdir-filen i postens katalog. Om till exempel ett länkat arbetsträd flyttas till /nysökväg/test-next och dess .git-fil pekar på /sökväg/main/.git/worktrees/test-next, ska /sökväg/main/.git/worktrees/test-next/gitdir uppdateras så att den i stället refererar till /nysökväg/test-next. Ännu bättre, kör git worktree repair för att återupprätta anslutningen automatiskt.
För att förhindra att en $GIT_DIR/worktrees-post beskärs (vilket kan vara användbart i vissa situationer, till exempel när postens arbetsträd lagras på en portabel enhet), använd kommandot git worktree lock, vilket lägger till en fil med namnet locked i postens katalog. Filen innehåller orsaken i klartext. Om till exempel ett länkat arbetsträds .git-fil pekar på /sökväg/main/.git/worktrees/test-next, kommer en fil med namnet /sökväg/main/.git/worktrees/test-next/locked att förhindra att test-next-posten beskärs. Se gitrepository-layout[5] för mer information.
När extensions.worktreeConfig är aktiverat, läses konfigurationsfilen .git/worktrees/<id>/config.worktree efter .git/config.
LIST UTMATNINGS-FORMAT
Kommandot worktree list har två utdataformat. Standardformatet visar detaljerna på en enda rad med kolumner. Till exempel:
$ git worktree list /sökväg/till/bar-källa (bare) /sökväg/till/länkat-arbetsträd abcd1234 [master] /sökväg/till/annat-länkat-arbetsträd 1234abc (detached HEAD)
Kommandot visar även anteckningar för varje arbetsträd, beroende på dess tillstånd. Dessa anteckningar är:
-
locked, om arbetsträdet är låst. -
prunable, om arbetsträdet kan beskäras viagitworktreeprune.
$ git worktree list /sökväg/till/länkat-arbetsträd abcd1234 [master] /sökväg/till/låst-arbetsträd acbd5678 (brancha) locked /sökväg/till/beskärbart-arbetsträd 5678abc (detached HEAD) prunable
För dessa annoteringar, kan det också finnas en orsak, och detta kan ses med hjälp av utförligt-läget (verbose). Annoteringen flyttas sedan till nästa indragna rad följt av den ytterligare informationen.
$ git worktree list --verbose
/sökväg/till/länkat-arbetsträd abcd1234 [master]
/sökväg/till/länkat-arbetsträd-ej-anlending abcd5678 (detached HEAD) locked
/sökväg/till/länkat-arbetsträd-med-anlending 1234abcd (brancha)
locked: arbetsträdssökvägen är monterad på en portabel enhet
/sökväg/till/prunable-worktree 5678abc1 (detached HEAD)
prunable: ”gitdir”-filen pekar på en ickeexisterande plats
Observera att anteckningen flyttas till nästa rad om den ytterligare informationen är tillgänglig, annars stannar den kvar på samma rad som själva arbetsträdet.
porcelain-format
porcelain-formatet har en rad per attribut. Om -z anges avslutas raderna med NUL snarare än en nyrad. Attribut listas med en etikett och ett värde separerade med ett enda mellanslag. Booleska attribut (som bare och detached) listas endast som en etikett, och finns endast om värdet är sant. Vissa attribut (som locked) kan listas endast som en etikett eller med ett värde beroende på om en orsak finns tillgänglig. Det första attributet i ett arbetsträd är alltid worktree, en tom rad indikerar slutet på posten. Till exempel:
$ git worktree list --porcelain worktree /sökväg/till/bar-källa bare worktree /sökväg/till/länkat-arbetsträd HEAD abcd1234abcd1234abcd1234abcd1234abcd1234 branch refs/heads/master worktree /sökväg/till/annat-länkat-arbetsträd HEAD 1234abc1234abc1234abc1234abc1234abc1234a detached worktree /sökväg/till/länkat-arbetsträd-låst-ingen-anledning HEAD 5678abc5678abc5678abc5678abc5678abc5678c branch refs/heads/locked-no-reason locked worktree /sökväg/till/länkat-arbetsträd-låst-med-anledning HEAD 3456def3456def3456def3456def3456def3456b branch refs/heads/locked-with-reason locked anledningen till att den är låst worktree /sökväg/till/beskärbart-arbetsträd HEAD 1233def1234def1234def1234def1234def1234b detached prunable ”gitdir”-filen pekar på en ickeexisterande plats
Om inte -z används citeras alla "ovanliga" tecken i låsorsaken, såsom nyradstecken, och hela orsaken citeras enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]). Till exempel:
$ git worktree list --porcelain ... locked "orsaken\nvarför är låst" ...
EXEMPEL
Mitt i ett refaktoreringspass kommer chefen in och kräver att något åtgärdas omedelbart. Vanligtvis används git-stash[1] för att tillfälligt lagra ändringar, men arbetsträdet är i ett sådant tillstånd av oordning (med nya, flyttade och borttagna filer, och andra småsaker utspridda) att det är olämpligt att riskera att störa något av det. I stället skapas ett tillfälligt länkat arbetsträd för att göra nödåtgärden, det tas bort när det är klart och därefter återupptas det tidigare refaktoreringspasset.
$ git worktree add -b kritisk-fix ../temp master $ pushd ../temp # ... hack hack hack ... $ git commit -a -m 'nödlösning för chefen' $ popd $ git worktree remove ../temp
KONFIGURATION
Allt under den här raden i det här avsnittet är selektivt inkluderat från dokumentationen git-config[1]. Innehållet är detsamma som det som finns där:
-
worktree.guessRemote -
Om ingen gren anges och varken
-b,-Beller--detachanvänds, skapargitworktreeaddsom standard en ny gren från HEAD. Omworktree.guessRemoteär satt till sant, försökerworktreeaddhitta en fjärrspårad gren vars namn unikt matchar det nya grennamnet. Om en sådan gren finns, checkas den ut och sätts som "uppströms" för den nya grenen. Om ingen sådan matchning kan hittas, återgår den till att skapa en ny gren från den aktuellaHEAD. -
worktree.useRelativePaths -
Länka arbetsträd med relativa sökvägar (när "
true") eller absoluta sökvägar (när "false"). Detta är särskilt användbart för inställningar där kodförrådet och arbetsträden kan flyttas mellan olika platser eller miljöer. Standardvärdet är "false".Observera att om du ställer in
worktree.useRelativePathstill "true" aktiveras konfigurationenextensions.relativeWorktrees(se git-config[1]), vilket gör den inkompatibel med äldre versioner av Git.
BUGGAR
Flera utcheckningar är generellt sett fortfarande experimentella, och stödet för undermoduler är ofullständigt. Det rekommenderas INTE att göra flera utcheckningar av ett superprojekt.
GIT
En del av git[1]-sviten