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

NAMN

git-apply - Tillämpa en patch på filer och/eller indexet

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äga 0 0. 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 --index fö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-add i git-add[1]). Detta alternativ ignoreras om --index eller --cached används och har ingen effekt utanför ett Git-förvar. Observera att --index kan 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 --index option unless the --cached option is used, and is incompatible with the --reject option. When used with the --cached option, 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 --numstat har 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 -p2 kommer en patch mot a/dir/fil att 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-apply används för statistik och inte tillämpar en patch, används nowarn som standard.

Du kan använda olika <handlings>-värden för att styra detta beteende:

  • nowarn stänger av varningen för efterföljande blanksteg.

  • warn matar ut varningar för ett fåtal sådana fel, men tillämpar patchen som den är (standard).

  • fix matar 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).

  • error ger varningar för ett fåtal sådana fel och vägrar att installera patchen.

  • error-all liknar error men 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.sh till b/git-gui.sh appliceras på filen i arbetsträdet modules/git-gui/git-gui.sh genom att köra git apply --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 git apply används som en "bättre GNU-patch" kan användaren använda alternativet --unsafe-paths för att åsidosätta denna säkerhetskontroll. Detta alternativ har ingen effekt när --index eller --cached anvä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 sv/config/apply.adoc

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.

SE ÄVEN

GIT

En del av git[1]-sviten