Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.44.1 → 2.52.0 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 keine Änderungen
-
2.43.0
2023-11-20
- 2.35.1 → 2.42.4 keine Änderungen
-
2.35.0
2022-01-24
- 2.7.6 → 2.34.8 keine Änderungen
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
git merge-file [-L <current-name> [-L <base-name> [-L <other-name>]]] [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>] [--[no-]diff3] [--object-id] <current> <base> <other>
BESCHREIBUNG
Gegeben die drei Dateien <current>, <base> und <other>, integriert git merge-file alle Änderungen, die von <base> zu <other> führen, in <current>. Das Ergebnis wird normalerweise in <current> geschrieben. git merge-file ist nützlich, um separate Änderungen an einem Original zu kombinieren. Angenommen, <base> ist das Original und sowohl <current> als auch <other> sind Modifikationen von <base>, dann kombiniert git merge-file beide Änderungen.
Ein Konflikt tritt auf, wenn sowohl <current> als auch <other> Änderungen in einem gemeinsamen Zeilensegment haben. Wenn ein Konflikt gefunden wird, gibt git merge-file normalerweise eine Warnung aus und klammert den Konflikt mit Zeilen ein, die die Marker <<<<<<< und >>>>>>> enthalten. Ein typischer Konflikt sieht so aus
<<<<<<< A lines in file A ======= lines in file B >>>>>>> B
Wenn es Konflikte gibt, sollte der Benutzer das Ergebnis bearbeiten und eine der Alternativen löschen. Wenn jedoch die Option --ours, --theirs oder --union aktiv ist, werden diese Konflikte gelöst, wobei Zeilen aus <current>, Zeilen aus <other> oder Zeilen aus beiden bevorzugt werden. Die Länge der Konfliktmarker kann mit der Option --marker-size angegeben werden.
Wenn --object-id angegeben ist, tritt exakt das gleiche Verhalten auf, außer dass anstatt anzugeben, was als Dateien zusammengeführt werden soll, dies als eine Liste von Objekt-IDs angegeben wird, die auf Blobs verweisen.
Der Exit-Wert dieses Programms ist bei einem Fehler negativ und ansonsten die Anzahl der Konflikte (abgeschnitten auf 127, wenn es mehr als diese Anzahl von Konflikten gibt). Wenn die Zusammenführung erfolgreich war, ist der Exit-Wert 0.
git merge-file ist als minimaler Klon von RCS merge konzipiert; das heißt, es implementiert alle RCS merge-Funktionalitäten, die von git[1] benötigt werden.
OPTIONEN
- --object-id
-
Gibt an, dass die zusammenzuführenden Inhalte als Blobs im aktuellen Repository anstelle von Dateien angegeben werden. In diesem Fall muss die Operation innerhalb eines gültigen Repositorys stattfinden.
Wenn die Option
-pangegeben ist, geht die zusammengeführte Datei (einschließlich Konflikten, falls vorhanden) wie gewohnt an die Standardausgabe. Andernfalls wird die zusammengeführte Datei in den Objektspeicher geschrieben und die Objekt-ID ihres Blobs wird an die Standardausgabe geschrieben. - -L <label>
-
Diese Option kann bis zu dreimal angegeben werden und gibt Labels an, die anstelle der entsprechenden Dateinamen in Konfliktberichten verwendet werden sollen. Das heißt,
gitmerge-file-Lx-Ly-Lzabcgeneriert eine Ausgabe, die so aussieht, als käme sie von den Dateien x, y und z anstelle von den Dateien a, b und c. - -p
-
Sendet Ergebnisse an die Standardausgabe, anstatt <current> zu überschreiben.
- -q
-
Leise; warnt nicht vor Konflikten.
- --diff3
-
Zeigt Konflikte im "diff3"-Stil an.
- --zdiff3
-
Zeigt Konflikte im "zdiff3"-Stil an.
- --ours
- --theirs
- --union
-
Anstatt Konflikte in der Datei zu belassen, werden Konflikte gelöst, indem die Zeilen von unserer (oder ihrer oder beider) Seite bevorzugt werden.
- --diff-algorithm={patience|minimal|histogram|myers}
-
Verwendet einen anderen Diff-Algorithmus während der Zusammenführung. Der aktuelle Standard ist "myers", aber die Auswahl eines neueren Algorithmus wie "histogram" kann helfen, Fehlzusammenführungen zu vermeiden, die aufgrund von unwichtigen übereinstimmenden Zeilen (wie Klammern aus verschiedenen Funktionen) auftreten. Siehe auch git-diff[1]
--diff-algorithm.
BEISPIELE
gitmerge-fileREADME.myREADMEREADME.upstream-
kombiniert die Änderungen von README.my und README.upstream seit README, versucht sie zusammenzuführen und schreibt das Ergebnis in README.my.
gitmerge-file-La-Lb-Lctmp/a123tmp/b234tmp/c345-
führt tmp/a123 und tmp/c345 mit der Basis tmp/b234 zusammen, verwendet aber die Labels
aundcanstelle vontmp/a123undtmp/c345. gitmerge-file-p--object-idabc1234def567890abcd-
kombiniert die Änderungen des Blobs abc1234 und 890abcd seit def567, versucht sie zusammenzuführen und schreibt das Ergebnis an die Standardausgabe
GIT
Teil der git[1] Suite