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.47.1 → 2.50.1 no changes
-
2.47.0
2024-10-06
- 2.43.1 → 2.46.4 no changes
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 no changes
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 no changes
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.32.1 → 2.34.8 no changes
-
2.32.0
2021-06-06
- 2.29.1 → 2.31.8 no changes
-
2.29.0
2020-10-19
- 2.19.1 → 2.28.1 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.16.6 → 2.17.6 no changes
-
2.15.4
2019-12-06
- 2.14.6 no changes
-
2.13.7
2018-05-22
- 2.9.5 → 2.12.5 no changes
-
2.8.6
2017-07-30
- 2.5.6 → 2.7.6 no changes
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
- 2.1.4 → 2.2.3 no changes
-
2.0.5
2014-12-17
SYNOPSIS
git apply [--stat] [--numstat] [--summary] [--check] [--index | --intent-to-add] [--3way] [--ours | --theirs | --union] [--apply] [--no-add] [--build-fake-ancestor=<fil>] [-R | --reverse] [--allow-binary-replacement | --binary] [--reject] [-z] [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] [--ignore-space-change | --ignore-whitespace] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<sökväg>] [--include=<path>] [--directory=<rot>] [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [<patch>…]
BESKRIVNING
Läser den angivna diff-utdatan (dvs. "en patch") och tillämpar den på filer. När kommandot körs från en underkatalog i ett förvar ignoreras patchade sökvägar utanför katalogen. Med alternativet --index tillämpas patchen även på indexet, och med alternativet --cached tillämpas patchen endast på indexet. Utan dessa alternativ tillämpar kommandot patchen endast på filer och kräver inte att de finns i ett Git-förvar.
Det här kommandot tillämpar patchen men skapar inte en incheckning. Använd git-am[1] för att skapa incheckningar från patchar som genererats av git-format-patch[1] och/eller mottagits via e-post.
ALTERNATIV
- <patch>…
-
Filerna att läsa patchen från. - kan användas för att läsa från standardindata.
- --stat
-
Istället för att tillämpa patchen, mata ut diffstat som indata. Stänger av "tillämpa".
- --numstat
-
Liknar
--stat, men visar antalet tillagda och borttagna rader i decimalform och sökvägen utan förkortning, för att göra det mer maskinvänligt. För binära filer matas två-ut istället för att säga00. Stänger av "apply". - --summary
-
Istället för att tillämpa patchen, mata ut en komprimerad sammanfattning av information som hämtats från git diff-utökade headers, såsom skapelser, namnbyten och lägesändringar. Stänger av "tillämpa".
- --check
-
Istället för att tillämpa patchen, se om patchen är tillämplig på det aktuella arbetskatalog och/eller indexfilen och upptäcker fel. Stänger av "tillämpa".
- --index
-
Tillämpa patchen på både indexet och arbetskatalogen (eller kontrollera bara att den skulle tillämpas korrekt på båda om
--checkär aktivt). Observera att--indexförväntar sig att indexposter och arbetsträdskopior för relevanta sökvägar är identiska (deras innehåll och metadata, såsom filläge, måste matcha), och kommer att generera ett fel om de inte är det, även om korrigeringen skulle tillämpas korrekt på både indexet och arbetskatalogen separat. - --cached
-
Applicera korrigeringen endast på indexet, utan att röra arbetskatalogen. Om
--checkär aktivt, kontrollera bara att det skulle appliceras korrekt på indexposten. - -N
- --intent-to-add
-
När du endast tillämpar patchen på arbetskatalog, markera nya filer som ska läggas till i indexet senare (se alternativet
--intent-to-addi git-add[1]). Detta alternativ ignoreras om--indexeller--cachedanvänds och har ingen effekt utanför ett Git-förvar. Observera att--indexkan antydas av andra alternativ som--3way. - -3
- --3way
-
Attempt 3-way merge if the patch records the identity of blobs it is supposed to apply to and we have those blobs available locally, possibly leaving the conflict markers in the files in the working tree for the user to resolve. This option implies the
--indexoption unless the--cachedoption is used, and is incompatible with the--rejectoption. When used with the--cachedoption, any conflicts are left at higher stages in the cache. - --ours
- --theirs
- --union
-
Istället för att lämna konflikter kvar i filen, lös konflikter som gynnar vår (eller deras eller båda) sida av gränserna. Kräver --3way.
- --build-fake-ancestor=<fil>
-
Nyare utdata för git diff har inbäddad indexinformation för varje blob för att identifiera den ursprungliga versionen som patchen gäller. När denna flagga anges, och om originalversionerna av blobarna är tillgängliga lokalt, skapas ett tillfälligt index som innehåller dessa blobbar.
När en ren lägesändring påträffas (som inte har någon indexinformation) läses informationen från det aktuella indexet istället.
- -R
- --reverse
-
Applicera plåstret i omvänd ordning.
- --reject
-
För atomicitet misslyckas git apply som standard med hela patchen och vidrör inte arbetskatalogen när vissa av stycken inte gäller. Det här alternativet gör att de delar av patchen som är tillämpliga tillämpas och de avvisade stycken lämnas kvar i motsvarande *.rej-filer.
- -z
-
När
--numstathar angetts, ändra inte sökvägar, utan använd ett NUL-avslutat maskinläsbart format.Utan detta alternativ, citeras sökvägar med "ovanliga" tecken enligt beskrivningen för konfigurationsvariabeln
core.quotePath(se git-config[1]). - -p<n>
-
Ta bort <n> inledande sökvägskomponenter (separerade med snedstreck) från traditionella diff-sökvägar. T.ex., med
-p2kommer en patch mota/dir/filatt tillämpas direkt påfil. Standardvärdet är 1. - -C<n>
-
Se till att minst <n> rader med omgivande kontext matchar före och efter varje ändring. När det finns färre rader med omgivande kontext måste alla matcha. Som standard ignoreras inget kontext någonsin.
- --unidiff-zero
-
Som standard förväntar sig git apply att patchen som tillämpas är en enhetlig diff med minst en rad kontext. Detta ger bra säkerhetsåtgärder, men fungerar inte när man tillämpar en diff som genereras med
--unified=0. För att kringgå dessa kontroller, använd--unidiff-zero.Observera att av ovanstående skäl, avråds användning av kontextfria patchar.
- --apply
-
Om du använder något av alternativen markerade med "Stänger av apply" ovan, läser och matar git apply ut den begärda informationen utan att faktiskt tillämpa patchen. Markera den här flaggan efter dessa flaggor för att även tillämpa patchen.
- --no-add
-
När du tillämpar en patch, ignorera tillägg som gjorts av patchen. Detta kan användas för att extrahera den gemensamma delen mellan två filer genom att först köra diff på dem och tillämpa resultatet med det här alternativet, vilket skulle tillämpa borttagningsdelen men inte tilläggsdelen.
- --allow-binary-replacement
- --binary
-
Historically we did not allow binary patch application without an explicit permission from the user, and this flag was the way to do so. Currently, we always allow binary patch application, so this is a no-op.
- --exclude=<sökvägsmönster>
-
Tillämpa inte ändringar på filer som matchar det angivna sökvägsmönstret. Detta kan vara användbart vid import av patchuppsättningar, där du vill exkludera vissa filer eller kataloger.
- --include=<sökvägsmönster>
-
Tillämpa ändringar på filer som matchar det angivna sökvägsmönstret. Detta kan vara användbart vid import av patchuppsättningar, där du vill inkludera vissa filer eller kataloger.
När
--exclude- och--include-mönster används undersöks de i den ordning de visas på kommandoraden, och den första matchningen avgör om en patch till varje sökväg används. En patch till en sökväg som inte matchar något include/exclude-mönster används som standard om det inte finns något include-mönster på kommandoraden, och ignoreras om det finns något include-mönster. - --ignore-space-change
- --ignore-whitespace
-
När du applicerar en patch, ignorera ändringar i blanktecken i kontextrader om det behövs. Kontextrader kommer att behålla sina blanktecken och de kommer inte att genomgå blankteckensrättning oavsett värdet på
--whitespace-alternativet. Nya rader kommer dock fortfarande att åtgärdas. - --whitespace=<handling>
-
När en patch appliceras, upptäck en ny eller modifierad rad som innehåller blankteckensfel. Vad som anses vara blankteckensfel styrs av konfigurationen
core.whitespace. Som standard betraktas efterföljande blanktecken (inklusive rader som enbart består av blanktecken) och ett mellanslagstecken som omedelbart följs av ett tabbtecken inuti radens första indrag som blankteckensfel.Som standard, skickar kommandot varningsmeddelanden men tillämpar patchen. När
git-applyanvänds för statistik och inte tillämpar en patch, användsnowarnsom standard.Du kan använda olika <handlings>-värden för att styra detta beteende:
-
nowarnstänger av varningen för efterföljande blanksteg. -
warnmatar ut varningar för ett fåtal sådana fel, men tillämpar patchen som den är (standard). -
fixmatar ut varningar för några sådana fel och tillämpar patchen efter att ha åtgärdat dem (stripär en synonym — verktyget som används för att endast betrakta efterföljande blanksteg som fel, och fixen innebar att "strippa" bort dem, men moderna Gits gör mer). -
errorger varningar för ett fåtal sådana fel och vägrar att installera patchen. -
error-allliknarerrormen visar alla fel.
-
- --inaccurate-eof
-
Under vissa omständigheter kan vissa versioner av diff inte korrekt upptäcka en saknad ny rad i slutet av filen. Som ett resultat registrerar inte patchar som skapats av sådana diff-program ofullständiga rader korrekt. Det här alternativet lägger till stöd för att tillämpa sådana patchar genom att kringgå den här buggen.
- -v
- --verbose
-
Rapportera förlopp till stderr. Som standard skrivs endast ett meddelande om den aktuella patchen ut. Det här alternativet gör att ytterligare information rapporteras.
- -q
- --quiet
-
Undertryck stderr-utdata. Meddelanden om patchstatus och förlopp kommer inte att skrivas ut.
- --recount
-
Lita inte på radantalet i styckes-rubrikerna, utan härled dem genom att inspektera patchen (t.ex. efter att ha redigerat patchen utan att justera hunk-rubrikerna på lämpligt sätt).
- --directory=<rot>
-
Lägg till <rot> framför alla filnamn. Om ett "-p"-argument också skickades, tillämpas det innan den nya roten läggs till.
Till exempel, kan en patch som talar om att uppdatera
a/git-gui.shtillb/git-gui.shappliceras på filen i arbetsträdetmodules/git-gui/git-gui.shgenom att köragitapply--directory=modules/git-gui. - --unsafe-paths
-
Som standard, avvisas en patch som påverkar utanför arbetsområdet (antingen ett Git-kontrollerat arbetsträd eller den aktuella arbetskatalogen när "git apply" används som ersättning för GNU patch) som ett misstag (eller en olycka).
När
gitapplyanvänds som en "bättre GNU-patch" kan användaren använda alternativet--unsafe-pathsför att åsidosätta denna säkerhetskontroll. Detta alternativ har ingen effekt när--indexeller--cachedanvänds. - --allow-empty
-
Returnera inte ett fel för patchar som inte innehåller någon diff. Detta inkluderar tomma patchar och patchar med endast incheckning-text.
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:
|
Warning
|
Missing See original version for this content. |
UNDERMODULER
Om patchen innehåller några ändringar i undermoduler behandlar git apply dessa ändringar enligt följande.
Om --index anges (explicit eller implicit) måste undermodulens incheckningar matcha indexet exakt för att patchen ska tillämpas. Om någon av undermodulerna är utcheckad ignoreras dessa utcheckningar helt, d.v.s. de behöver inte vara uppdaterade eller rena och de uppdateras inte.
Om --index inte anges ignoreras undermodulens incheckningar i patchen och endast frånvaron eller närvaron av motsvarande underkatalog kontrolleras och (om möjligt) uppdateras.
GIT
En del av git[1]-sviten