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.44.1 → 2.53.0 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.24.1 → 2.42.4 no changes
-
2.24.0
2019-11-04
- 2.18.1 → 2.23.4 no changes
-
2.18.0
2018-06-21
- 2.10.5 → 2.17.6 no changes
-
2.9.5
2017-07-30
- 2.2.3 → 2.8.6 no changes
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
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-filefö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/graftsoch 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