Svenska ▾ Topics ▾ Latest version ▾ git-replace last updated in 2.44.0

NAMN

git-replace - Skapa, visa, ta bort referenser för att ersätta objekt

SYNOPSIS

git replace [-f] <objekt> <ersättning>
git replace [-f] --edit <objekt>
git replace [-f] --graft <incheckning> [<förälder>…​]
git replace [-f] --convert-graft-file
git replace -d <objekt>…​
git replace [--format=<format>] [-l [<mönster>]]

BESKRIVNING

Lägger till en replace-referens i namnrymden refs/replace/.

Namnet på ersätt-referensen är SHA-1 för det objekt som ersätts. Innehållet i ersätt-referensen är SHA-1 för ersättningsobjektet.

Det ersatta objektet och ersättningsobjektet måste vara av samma typ. Denna begränsning kan kringgås med -f.

Om inte -f anges får referensen replace inte finnas ännu.

Det finns inga andra begränsningar för ersatta och ersatta objekt. Sammanslagnings-incheckningar kan ersättas av icke-sammanslagningsincheckningar och vice versa.

Ersättningsreferenser kommer att användas som standard av alla Git-kommandon förutom de som utför nåbarhetstraversalering (prune, pack transfer och fsck).

Det är möjligt att inaktivera användningen av ersättningsreferenser för vilket kommando som helst med hjälp av alternativet --no-replace-objects precis efter git.

Till exempel om incheckning foo har ersatts med incheckning bar:

$ git --no-replace-objects cat-file commit foo

visar information om incheckning foo, medan:

$ git cat-file commit foo

visar information om incheckning-bar.

Miljövariabeln GIT_NO_REPLACE_OBJECTS kan ställas in för att uppnå samma effekt som alternativet --no-replace-objects.

ALTERNATIV

-f
--force

Om en befintlig ersättningsreferens för samma objekt finns kommer den att skrivas över (i stället för att misslyckas).

-d
--delete

Ta bort befintliga ersättningsreferenser för de angivna objekten.

--edit <objekt>

Redigera ett objekts innehåll interaktivt. Det befintliga innehållet för <objekt> skrivs ut i en temporär fil, en redigerare startas på filen och resultatet analyseras för att skapa ett nytt objekt av samma typ som <objekt>. En ersättningsreferens skapas sedan för att ersätta <objekt> med det nyskapade objektet. Se git-var[1] för detaljer om hur redigeraren kommer att väljas.

--raw

När du redigerar, ange det råa objektinnehållet snarare än det som kan skrivas ut precis som det ska. För närvarande påverkar detta bara träd, som visas i binär form. Detta är svårare att arbeta med, men kan vara till hjälp när man reparerar ett träd som är så skadat att det inte kan skrivas ut precis som det ska. Observera att du kan behöva konfigurera din redigerare för att läsa och skriva binär data på ett rent sätt.

--graft <incheckning> [<förälder>…​]

Skapa en ympnings-incheckning. En ny incheckning skapas med samma innehåll som <incheckning> förutom att dess föräldrar kommer att vara [<förälder>…​] i stället för <incheckning>s föräldrar. En ersättningsreferens skapas sedan för att ersätta <incheckning> med den nyskapade incheckningen. Använd --convert-graft-file för att konvertera en $GIT_DIR/info/grafts-fil och använd replace refs i stället.

--convert-graft-file

Skapar ympnings-incheckningar för alla poster i $GIT_DIR/info/grafts och tar bort den filen när den lyckas. Syftet är att hjälpa användare att övergå från den numera föråldrade graft-filen.

-l <mönster>
--list <mönster>

Lista ersättningsreferenser för objekt som matchar det givna mönstret (eller alla om inget mönster anges). Om du skriver "git replace" utan argument listas även alla ersättningsreferenser.

--format=<format>

Vid listning, använd det angivna <format>, vilket kan vara ett av kort, medium eller lång. Om det utelämnas används standardformatet kort.

FORMAT

Följande format är tillgängliga:

  • short: <ersatt-sha1>

  • medium: <ersatt-sha1> → <ersättnings-sha1>

  • long: <ersatt-sha1> (<ersatt-type>) → <ersättning-sha1> (<ersättning-type>)

SKAPA ERSÄTTNINGSOBJEKT

git-hash-object[1], git-rebase[1] och git-filter-repo kan, tillsammans med andra git-kommandon, användas för att skapa ersättningsobjekt från befintliga objekt. Alternativet --edit kan också användas med git replace för att skapa ett ersättningsobjekt genom att redigera ett befintligt objekt.

Om du vill ersätta många blobbar, träd eller incheckningar som ingår i en sträng av incheckningar, kanske du bara vill skapa en ersättningssträng av incheckningar och sedan bara ersätta incheckningen i toppen av målsträngen av incheckningar med incheckningen i toppen av ersättningssträngen av incheckningar.

BUGGAR

Att jämföra blobbar eller träd som har ersatts med de som ersätter dem kommer inte att fungera korrekt. Och att använda git reset --hard för att gå tillbaka till en ersatt incheckning kommer att flytta grenen till ersättningsincheckningen i stället för den ersatta incheckningen.

Det kan uppstå andra problem när man använder git rev-list relaterade till väntande objekt.

GIT

En del av git[1]-sviten