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.35.1 → 2.42.4 no changes
-
2.35.0
2022-01-24
- 2.7.6 → 2.34.8 no changes
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 no changes
-
2.0.5
2014-12-17
SYNOPSIS
git merge-file [-L <nuvarande-namn> [-L <bas-namn> [-L <annat-namn>]]] [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>] [--[no-]diff3] [--object-id] <nuvarande> <bas> <annat>
BESKRIVNING
Givet tre filer <nuvarande>, <bas> och <annat>, införlivar git merge-file alla ändringar som leder från <bas> till <annat> i <nuvarande>. Resultatet hamnar vanligtvis i <nuvarande>. git merge-file är användbart för att kombinera separata ändringar i ett original. Anta att <bas> är originalet, och både <nuvarande> och <annat> är modifieringar av <bas>, då kombinerar git merge-file båda ändringarna.
En konflikt uppstår om både <nuvarande> och <annat> har ändringar i ett gemensamt radsegment. Om en konflikt hittas, utfärdar git merge-file normalt en varning och ställer konflikten i parentes med rader som innehåller markörerna <<<<<<< och >>>>>>>>. En typisk konflikt ser ut så här:
<<<<<<< A rader i filen A ======= rader i filen B >>>>>>> B
Om det finns konflikter, bör användaren redigera resultatet och ta bort ett av alternativen. När alternativet --ours, --theirs eller --union är aktivt löses dessa konflikter och gynnar rader från <nuvarande>, rader från <annat> eller rader från båda. Längden på konfliktmarkörerna kan anges med alternativet --marker-size.
Om --object-id anges inträffar exakt samma beteende, förutom att istället för att ange vad som ska sammanfogas som filer, anges det som en lista med objekt-ID:n som refererar till blobbar.
Programmets utgångsvärde är negativt vid fel, och antalet konflikter i övrigt (avkortat till 127 om det finns fler än så många konflikter). Om sammanslagningen var ren är utgångsvärdet 0.
git merge-file är utformad för att vara en minimal klon av RCS merge; det vill säga, den implementerar all RCS merge funktionalitet som behövs av git[1].
ALTERNATIV
- --object-id
-
Ange innehållet som ska sammanfogas som blobbar i den aktuella förvaret istället för filer. I det här fallet måste åtgärden ske i en giltigt förvar.
Om alternativet
-panges går den sammanfogade filen (inklusive eventuella konflikter) till standardutdata som vanligt; annars skrivs den sammanfogade filen till objektarkivet och objekt-ID:t för dess blob skrivs till standardutdata. - -L <etikett>
-
Det här alternativet kan anges upp till tre gånger och anger etiketter som ska användas istället för motsvarande filnamn i konfliktrapporter. Det vill säga,
gitmerge-file-Lx-Ly-Lzabcgenererar utdata som ser ut som att den kommer från filerna x, y och z istället för från filerna a, b och c. - -p
-
Skicka resultat till standardutdata istället för att skriva över <nuvarande>.
- -q
-
Tyst; varna inte för konflikter.
- --diff3
-
Visa konflikter i "diff3"-stil.
- --zdiff3
-
Visa konflikter i "zdiff3"-stil.
- --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 linjerna.
- --diff-algorithm={patience|minimal|histogram|myers}
-
Använd en annan diff-algoritm vid sammanfogning. Den nuvarande standarden är "myers", men att välja en nyare algoritm som "histogram" kan hjälpa till att undvika felsammanfogningar som uppstår på grund av oviktiga matchande linjer (som klammerparenteser från olika funktioner). Se även git-diff[1]
--diff-algorithm.
EXEMPEL
-
gitmerge-fileREADME.myREADMEREADME.upstream -
kombinerar ändringarna i README.my och README.upstream sedan README, försöker sammanfoga dem och skriver resultatet till README.my.
-
gitmerge-file-La-Lb-Lctmp/a123tmp/b234tmp/c345 -
slår samman tmp/a123 och tmp/c345 med basen tmp/b234, men använder etiketterna
aochcistället förtmp/a123ochtmp/c345. -
gitmerge-file-p--object-idabc1234def567890abcd -
kombinerar ändringarna i blobben abc1234 och 890abcd sedan def567, försöker slå samman dem och skriver resultatet till standardutdata
GIT
En del av git[1]-sviten