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

NAMN

git-restore - Återställ fungerande trädfiler

SYNOPSIS

git restore [<flaggor>] [--source=<träd>] [--staged] [--worktree] [--] <sökvägsmönster>…​
git restore [<flaggor>] [--source=<träd>] [--staged] [--worktree] --pathspec-from-file=<fil> [--pathspec-file-nul]
git restore (-p|--patch) [<flaggor>] [--source=<träd>] [--staged] [--worktree] [--] [<sökvägsmönster>…​]

BESKRIVNING

Återställ angivna sökvägar i arbetskatalogen med innehåll från en återställningskälla. Om en sökväg spåras men inte finns i återställningskällan, tas den bort så att den matchar källan.

Kommandot kan också användas för att återställa innehållet i indexet med --staged, eller återställa både arbetskatalogen och indexet med --staged --worktree.

Som standard, om --staged anges, återställs innehållet från HEAD, annars från indexet. Använd --source för att återställa från en annan incheckning.

Se "Nollställ, återställ och ångra" i git[1] för skillnaderna mellan de tre kommandona.

ALTERNATIV

-s <träd>
--source=<träd>

Återställ arbetskatalogens filer med innehållet från det givna trädet. Det är vanligt att ange källträdet genom att namnge en incheckning, gren eller tagg som är associerad med det.

Om inget anges, återställs innehållet från HEAD om --staged anges, annars från indexet.

Som ett specialfall, 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.

-p
--patch

Välj interaktivt stycken i skillnaden mellan återställningskällan och återställningsplatsen. Se avsnittet "Interaktivt läge" i git-add[1] för att lära dig hur man använder --patch-läget.

-U<n>
--unified=<n>

Generate diffs with <n> lines of context. Defaults to diff.context or 3 if the config option is unset.

--inter-hunk-context=<n>

Visar sammanhanget mellan olika stycken, upp till det angivna <antal> rader, och sammanfogar därmed stycken som ligger nära varandra. Standardvärdet är diff.interHunkContext eller 0 om konfigurationsalternativet inte är inställt.

-W
--worktree
-S
--staged

Ange återställningsplatsen. Om ingetdera alternativet anges återställs arbetskatalogen som standard. Om du anger --staged återställs endast indexet. Om du anger båda återställs båda.

-q
--quiet

Tyst, undertryck återkopplingsmeddelanden. Innebär --no-progress.

--progress
--no-progress

Förloppsstatus rapporteras som standard i standardfelströmmen när den är ansluten till en terminal, såvida inte --quiet anges. Denna flagga aktiverar förloppsrapportering även om den inte är ansluten till en terminal, oavsett --quiet.

--ours
--theirs

När du återställer filer i arbetskatalogen från indexet, använd steg #2 (ours) eller #3 (theirs) för icke-sammanslagna sökvägar. Det här alternativet kan inte användas när du checkar ut sökvägar från ett träd-igt (dvs. med alternativet --source).

Observera att under git rebase och git pull --rebase kan ours och theirs verka omväxlande. Se förklaringen av samma alternativ i git-checkout[1] för mer information.

-m
--merge

När du återställer filer i arbetskatalogen från indexet, återskapa den konfliktfyllda sammanfogningen i de osammanfogade sökvägarna. Det här alternativet kan inte användas när du checkar ut sökvägar från ett träd-igt (dvs. med alternativet --source).

--conflict=<stil>

Samma som alternativet --merge ovan, men ändrar hur de motstridiga styckenerna presenteras och åsidosätter konfigurationsvariabeln merge.conflictStyle. Möjliga värden är merge (standard), diff3 och zdiff3.

--ignore-unmerged

När du återställer filer i arbetskatalogen från indexet, avbryt inte operationen om det finns ej sammanslagna poster och varken --ours, --theirs, --merge eller --conflict är angivna. Osammanslagna sökvägar i arbetskatalogen lämnas oförändrade.

--ignore-skip-worktree-bits

I glest checkout-läge är standardinställningen att endast uppdatera poster som matchas av <sökvägsmönster> och glest-mönster i $GIT_DIR/info/sparse-checkout. Det här alternativet ignorerar de glest-mönstren och återställer villkorslöst alla filer i <sökvägsmönster>.

--recurse-submodules
--no-recurse-submodules

Om <sökvägsmönster> namnger en aktiv undermodul och återställningsplatsen inkluderar arbetskatalogen, kommer undermodulen bara att uppdateras om detta alternativ anges, i vilket fall dess arbetskatalog kommer att återställas till incheckningen som registrerats i superprojektet, och eventuella lokala modifieringar skrivs över. Om ingenting (eller --no-recurse-submodules) används, kommer inte undermodulernas arbetskataloger att uppdateras. Precis som git-checkout[1] kommer detta att koppla bort HEAD från undermodulen.

--overlay
--no-overlay

I överlagringsläge, ta aldrig bort filer vid återställning. I läge utan överlagring, ta bort spårade filer som inte visas i <träd> för --source=<träd>, så att de matchar <träd> exakt. Standardinställningen är läge utan överlagring.

--pathspec-from-file=<fil>

Sökvägsspec skickas i <fil> istället för kommandoradsargument. Om <fil> är exakt - används standardindata. Sökvägsmönster-element separeras med LF eller CR/LF. Sökvägsmönster-element kan citeras enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]). Se även --pathspec-file-nul och global --literal-pathspecs.

--pathspec-file-nul

Endast meningsfullt med --pathspec-from-file. Sökvägsmönsterposter separeras med tecknet NUL och alla andra tecken tolkas bokstavligt (inklusive radbrytningar och citattecken).

--

Tolka inte fler argument som alternativ.

<sökvägsmönster>...

Begränsar de sökvägar som påverkas av operationen.

För mer information, se posten sökvägsmönster i gitglossary[7].

EXEMPEL

Följande sekvens växlar till grenen master, återställer Makefile till två versioner bakåt, tar bort hello.c av misstag och hämtar tillbaka den från indexet.

$ git switch master
$ git restore --source master~2 Makefile  (1)
$ rm -f hello.c
$ git restore hello.c                     (2)
  1. ta en fil från en annan incheckning

  2. återställ hello.c från indexet

Om du vill återställa alla C-källfiler så att de matchar versionen i indexet kan du säga

$ git restore '*.c'

Observera citattecknen runt *.c. Filen hello.c kommer också att återställas, även om den inte längre finns i arbetskatalogen, eftersom filglobbing används för att matcha poster i indexet (inte i arbetskatalogen av skalet).

För att återställa alla filer i den aktuella katalogen

$ git restore .

eller för att återställa alla arbetskatalogs-filer med top sökvägsuttrycket (se gitglossary[7])

$ git restore :/

För att återställa en fil i indexet så att den matchar versionen i HEAD (detta är samma sak som att använda git-reset[1])

$ git restore --staged hello.c

eller så kan du återställa både indexet och arbetskatalogen (detta är samma sak som att använda git-checkout[1])

$ git restore --source=HEAD --staged --worktree hello.c

eller den korta formen som är mer praktisk men mindre läsbar:

$ git restore -s@ -SW hello.c

GIT

En del av git[1]-sviten