Amazon Best VPN GoSearch

OnWorks-Favicon

git-diff – Online in der Cloud

Führen Sie git-diff im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl git-diff, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


git-diff – Änderungen zwischen Commits, Commit und Arbeitsbaum usw. anzeigen

ZUSAMMENFASSUNG


git diff [Optionen] [ ] [--] [ ...]
git diff [Optionen] --cached [ ] [--] [ ...]
git diff [Optionen] [--] [ ...]
git diff [Optionen]
git diff [Optionen] [--no-index] [--]

BESCHREIBUNG


Zeigt Änderungen zwischen dem Arbeitsbaum und dem Index oder einem Baum, Änderungen zwischen dem Index an
und einem Baum, Änderungen zwischen zwei Bäumen, Änderungen zwischen zwei Blob-Objekten oder Änderungen
zwischen zwei Dateien auf der Festplatte.

git diff [--Optionen] [--] [ ...]
In diesem Formular werden die Änderungen angezeigt, die Sie relativ zum Index (Staging-Bereich für) vorgenommen haben
nächster Commit). Mit anderen Worten: Die Unterschiede liegen bei Ihnen könnte Sagen Sie Git, er solle weitermachen
zum Index hinzufügen, aber Sie haben es immer noch nicht getan. Sie können diese Änderungen mithilfe von inszenieren Git-
hinzufügen(1).

git diff --no-index [--options] [--] [ ...]
Dieses Formular dient zum Vergleich der beiden angegebenen Pfade im Dateisystem. Sie können das weglassen
--no-index-Option beim Ausführen des Befehls in einem von Git kontrollierten Arbeitsbaum und at
Mindestens einer der Pfade zeigt außerhalb des Arbeitsbaums oder beim Ausführen des Befehls
außerhalb eines von Git kontrollierten Arbeitsbaums.

git diff [--options] --cached [ ] [--] [ ...]
In diesem Formular werden die Änderungen angezeigt, die Sie für den nächsten Commit relativ zum genannten vorgenommen haben
. Normalerweise möchten Sie einen Vergleich mit dem neuesten Commit, wenn Sie dies nicht tun
geben , der Standardwert ist HEAD. Wenn HEAD nicht existiert (z. B. ungeborene Zweige) und
Wird nicht angegeben, werden alle inszenierten Änderungen angezeigt. --staged ist ein Synonym für --cached.

git diff [--Optionen] [--] [ ...]
In diesem Formular können Sie die Änderungen anzeigen, die Sie in Ihrem Arbeitsbaum relativ zum genannten haben
. Sie können HEAD verwenden, um es mit dem letzten Commit oder einem Zweignamen zu vergleichen
Vergleichen Sie es mit der Spitze einer anderen Filiale.

git diff [--Optionen] [--] [ ...]
Dies dient dazu, die Änderungen zwischen zwei willkürlichen anzuzeigen .

git diff [--Optionen] .. [--] [ ...]
Dies ist gleichbedeutend mit der vorherigen Form. Wenn auf der einen Seite weggelassen wird, wird es so sein
haben den gleichen Effekt wie die Verwendung von HEAD.

git diff [--Optionen] ... [--] [ ...]
Dieses Formular dient dazu, die Änderungen im enthaltenen Zweig und bis zum zweiten anzuzeigen
, beginnend mit einem gemeinsamen Vorfahren beider . „git diff A...B“ ist
entspricht „git diff $(git-merge-base AB) B“. Sie können jedes davon weglassen ,
Dies hat den gleichen Effekt wie die Verwendung von HEAD.

Nur für den Fall, dass Sie etwas Exotisches tun, sollten Sie beachten, dass alle
in der obigen Beschreibung, außer in den letzten beiden Formen, die „..“-Notationen verwenden,
kann beliebig sein .

Für eine vollständigere Liste der Schreibweisen , siehe Abschnitt „ÜBERARBEITUNG ANGEBEN“ in
gitrevisionen(7). Bei „diff“ geht es jedoch darum, zwei zu vergleichen Endpunkte, nicht Bereiche, und die
Bereichsnotationen (" .. " Und " ... ") bedeuten keinen Bereich als
definiert im Abschnitt „SPEZIFIZIERUNG VON BEREICHEN“ in gitrevisionen(7).

git diff [Optionen]
In diesem Formular werden die Unterschiede zwischen den Rohinhalten zweier Blob-Objekte angezeigt.

OPTIONAL


-p, -u, --patch
Patch generieren (siehe Abschnitt zum Generieren von Patches). Dies ist die Standardeinstellung.

-s, --no-patch
Diff-Ausgabe unterdrücken. Nützlich für Befehle wie git show, die den Patch anzeigen
Standardeinstellung oder um die Wirkung von --patch aufzuheben.

-U , --unified=
Unterschiede generieren mit statt der üblichen drei Kontextzeilen. Impliziert -p.

--roh
Generieren Sie das Diff im Rohformat.

--patch-with-raw
Synonym für -p --raw.

--minimal
Nehmen Sie sich mehr Zeit, um sicherzustellen, dass der kleinstmögliche Unterschied entsteht.

--Geduld
Generieren Sie einen Diff mit dem „Patience Diff“-Algorithmus.

--Histogramm
Generieren Sie einen Diff mit dem „Histogramm-Diff“-Algorithmus.

--diff-algorithm={patience|minimal|histogram|myers}
Wählen Sie einen Diff-Algorithmus. Die Varianten sind wie folgt:

Standard, Myers
Der grundlegende Greedy-Diff-Algorithmus. Derzeit ist dies die Standardeinstellung.

minimal
Nehmen Sie sich mehr Zeit, um sicherzustellen, dass der kleinstmögliche Unterschied entsteht.

Geduld
Verwenden Sie beim Generieren von Patches den „Patience Diff“-Algorithmus.

Histogramm
Dieser Algorithmus erweitert den Geduldsalgorithmus, um „gemeinsames Auftreten mit geringem Vorkommen“ zu unterstützen
Elemente".

Wenn Sie beispielsweise die Variable diff.algorithm auf einen nicht standardmäßigen Wert konfiguriert haben und
Wenn Sie die Standardeinstellung verwenden möchten, müssen Sie die Option --diff-algorithm=default verwenden.

--stat[= [, [, ]]]
Generieren Sie einen Diffstat. Standardmäßig wird so viel Platz wie nötig für verwendet
Dateinamenteil und der Rest für den Diagrammteil. Die maximale Breite ist standardmäßig auf Terminal eingestellt
Breite oder 80 Spalten, wenn keine Verbindung zu einem Terminal besteht, und kann durch überschrieben werden .
Die Breite des Dateinamensteils kann durch Angabe einer anderen Breite begrenzt werden
nach einem Komma. Die Breite des Diagrammteils kann mit begrenzt werden
--stat-graph-width= (betrifft alle Befehle, die ein Statistikdiagramm generieren) oder von
Einstellung von diff.statGraphWidth= (hat keinen Einfluss auf den Git-Format-Patch). Indem Sie a
dritter Parameter können Sie die Ausgabe auf die erste beschränken Zeilen, gefolgt
von ... wenn es noch mehr gibt.

Diese Parameter können auch individuell mit --stat-width= eingestellt werden ,
--stat-name-width= und --stat-count= .

--numstat
Ähnlich wie --stat, zeigt jedoch die Anzahl der hinzugefügten und gelöschten Zeilen in Dezimalschreibweise an
Pfadname ohne Abkürzung, um ihn maschinenfreundlicher zu machen. Für Binärdateien:
gibt zwei aus - statt 0 0 zu sagen.

--shortstat
Geben Sie nur die letzte Zeile des Formats --stat aus, die die Gesamtzahl der Änderungen enthält
Dateien sowie Anzahl der hinzugefügten und gelöschten Zeilen.

--dirstat[= ]
Geben Sie die Verteilung der relativen Änderungsmenge für jedes Unterverzeichnis aus. Der
Das Verhalten von --dirstat kann angepasst werden, indem eine durch Kommas getrennte Liste übergeben wird
Parameter. Die Standardeinstellungen werden durch die Konfigurationsvariable diff.dirstat gesteuert
(sehen git-config(1)). Folgende Parameter stehen zur Verfügung:

Änderungen
Berechnen Sie die Dirstat-Nummern, indem Sie die Zeilen zählen, die aus dem entfernt wurden
Quelle hinzugefügt oder zum Ziel hinzugefügt werden. Dabei wird die Menge an reinem Code ignoriert
Bewegungen innerhalb einer Datei. Mit anderen Worten: Das Neuanordnen von Zeilen in einer Datei ist nicht möglich
genauso viel gezählt wie andere Änderungen. Dies ist das Standardverhalten, wenn kein Parameter vorhanden ist
gegeben ist.

Linien
Berechnen Sie die Dirstat-Zahlen, indem Sie die reguläre zeilenbasierte Diff-Analyse durchführen, und
Summieren der Anzahl der entfernten/hinzugefügten Zeilen. (Zählen Sie bei Binärdateien 64-Byte-Blöcke
stattdessen, da Binärdateien kein natürliches Konzept von Zeilen haben). Das ist ein Mehr
teurer --dirstat-Verhalten als das Änderungsverhalten, aber es zählt
neu angeordnete Zeilen innerhalb einer Datei ebenso wie andere Änderungen. Die resultierende Ausgabe ist
im Einklang mit dem, was Sie von den anderen --*stat-Optionen erhalten.

Dateien
Berechnen Sie die Dirstat-Nummern, indem Sie die Anzahl der geänderten Dateien zählen. Jeder hat sich verändert
Datei zählt in der Dirstat-Analyse gleichermaßen. Dies ist rechnerisch am günstigsten
--dirstat Verhalten, da der Dateiinhalt überhaupt nicht geprüft werden muss.

kumulativ
Zählen Sie Änderungen in einem untergeordneten Verzeichnis auch für das übergeordnete Verzeichnis. Beachten Sie, dass
Bei kumulierter Verwendung kann die Summe der gemeldeten Prozentsätze 100 % überschreiten. Der
Das Standardverhalten (nicht kumulativ) kann mit der Funktion „Nicht kumulativ“ angegeben werden
Parameters.


Ein ganzzahliger Parameter gibt einen Cut-off-Prozentsatz an (standardmäßig 3 %). Verzeichnisse
Beiträge, die weniger als diesen Prozentsatz zu den Änderungen beitragen, werden in der Ausgabe nicht angezeigt.

Beispiel: Im Folgenden werden geänderte Dateien gezählt, während Verzeichnisse mit weniger Dateien ignoriert werden
mehr als 10 % der Gesamtmenge der geänderten Dateien ausmachen und die Anzahl der untergeordneten Verzeichnisse ansammelt
in den übergeordneten Verzeichnissen: --dirstat=files,10,cumulative.

--Zusammenfassung
Geben Sie eine komprimierte Zusammenfassung erweiterter Header-Informationen wie Erstellungen und Umbenennungen aus
und Modusänderungen.

--patch-with-stat
Synonym für -p --stat.

-z
Wenn --raw, --numstat, --name-only oder --name-status angegeben wurde, führen Sie kein Munge durch
Pfadnamen und verwenden Sie NULs als Abschlusszeichen für Ausgabefelder.

Ohne diese Option enthält jede Pfadnamenausgabe TAB, LF, doppelte Anführungszeichen und
Backslash-Zeichen werden durch \t, \n, \" bzw. \\ und den Pfadnamen ersetzt
wird in doppelte Anführungszeichen gesetzt, wenn eine dieser Ersetzungen erfolgt ist.

--nur Name
Nur Namen geänderter Dateien anzeigen.

--Name-Status
Zeigt nur Namen und Status der geänderten Dateien an. Siehe die Beschreibung des --diff-filters
Option zur Bedeutung der Statusbuchstaben.

--submodule[= ]
Geben Sie an, wie Unterschiede in Submodulen angezeigt werden. Wenn --submodule oder --submodule=log
gegeben ist, die Log Format verwendet wird. Dieses Format listet die Commits im Bereich wie auf Git-
Untermodul(1) Zusammenfassung tut es. Weglassen der Option --submodule oder Angabe
--submodule=short, verwendet die kurz Format. Dieses Format zeigt nur die Namen der
Commits am Anfang und Ende des Bereichs. Kann über das diff.submodul angepasst werden
variable Konfiguration.

--color[= ]
Farbunterschied anzeigen. --color (also ohne =) ist dasselbe wie --color=always.
kann immer, nie oder automatisch sein. Es kann über color.ui und geändert werden
color.diff-Konfigurationseinstellungen.

--keine Farbe
Schalten Sie den Farbunterschied aus. Dies kann zum Überschreiben von Konfigurationseinstellungen verwendet werden. Es ist der
Dasselbe wie --color=never.

--word-diff[= ]
Zeigen Sie einen Wortunterschied mit dem an um geänderte Wörter abzugrenzen. Standardmäßig sind es Wörter
durch Leerzeichen getrennt; siehe --word-diff-regex unten. Der Standardmäßig ist Ebene,
und muss einer von Folgendem sein:

Farbe
Markieren Sie geänderte Wörter nur mit Farben. Impliziert --color.

Ebene
Wörter als [-removed-] und {+added+} anzeigen. Unternimmt keine Fluchtversuche
Trennzeichen, wenn sie in der Eingabe erscheinen, sodass die Ausgabe möglicherweise mehrdeutig ist.

Porzellan
Verwenden Sie ein spezielles zeilenbasiertes Format, das für den Skriptverbrauch bestimmt ist.
Hinzugefügte/entfernte/unveränderte Läufe werden im üblichen einheitlichen Diff-Format gedruckt.
beginnend mit einem +/-/` `-Zeichen am Anfang der Zeile und endend auf
das Ende der Linie. Zeilenumbrüche in der Eingabe werden durch eine Tilde ~ in einer Zeile dargestellt
seiner eigenen.

keine
Deaktivieren Sie die Wortdifferenz erneut.

Beachten Sie, dass trotz des Namens des ersten Modus die Farbe zur Hervorhebung der Änderungen verwendet wird
Teile in allen Modi, sofern aktiviert.

--word-diff-regex=
Verwenden um zu entscheiden, was ein Wort ist, anstatt Reihen von Nicht-Leerzeichen zu berücksichtigen
ein Wort sein. Impliziert auch --word-diff, sofern es nicht bereits aktiviert war.

Jede nicht überlappende Übereinstimmung der gilt als Wort. Alles dazwischen
Diese Übereinstimmungen werden als Leerzeichen betrachtet und zum Zwecke der Suche ignoriert(!).
Unterschiede. Möglicherweise möchten Sie |[^[:space:]] an Ihren zu erstellenden regulären Ausdruck anhängen
Stellen Sie sicher, dass alle Zeichen, die keine Leerzeichen sind, übereinstimmen. Eine Übereinstimmung, die eine neue Zeile enthält, ist
am Zeilenumbruch stillschweigend abgeschnitten(!).

Beispiel: --word-diff-regex=. behandelt jedes Zeichen als Wort und
Zeigen Sie dementsprechend Unterschiede Zeichen für Zeichen an.

Der reguläre Ausdruck kann auch über einen Diff-Treiber oder eine Konfigurationsoption festgelegt werden, siehe
gittributes(1) oder git-config(1). Die explizite Angabe überschreibt alle Diff-Treiber oder
Konfigurationseinstellung. Diff-Treiber überschreiben Konfigurationseinstellungen.

--color-words[= ]
Entspricht --word-diff=color plus (wenn ein regulärer Ausdruck angegeben wurde)
--word-diff-regex= .

--no-renames
Deaktivieren Sie die Umbenennungserkennung, auch wenn die Konfigurationsdatei dies standardmäßig vorgibt
so.

--prüfen
Warnen Sie, wenn Änderungen zu Leerzeichenfehlern führen. Was als Leerzeichenfehler gilt, ist
gesteuert durch die core.whitespace-Konfiguration. Standardmäßig werden nachgestellte Leerzeichen verwendet
(einschließlich Zeilen, die ausschließlich aus Leerzeichen bestehen) und einem Leerzeichen
Unmittelbar gefolgt von einem Tabulatorzeichen innerhalb des ersten Einzugs der Zeile sind
werden als Leerzeichenfehler betrachtet. Wird mit einem Status ungleich Null beendet, wenn Probleme gefunden werden. Nicht
kompatibel mit --exit-code.

--ws-error-highlight=
Heben Sie Leerraumfehler in den von angegebenen Zeilen hervor in der von Ihnen angegebenen Farbe
color.diff.whitespace. ist eine durch Kommas getrennte Liste des alten, neuen Kontexts. Wenn
Diese Option ist nicht verfügbar, nur Leerzeichenfehler in neuen Zeilen werden hervorgehoben. Z.B
--ws-error-highlight=new,old hebt Leerzeichenfehler sowohl beim Löschen als auch beim Hinzufügen hervor
Linien. Alle können als Abkürzung für alt, neu, Kontext verwendet werden.

--full-index
Zeigen Sie statt der ersten Handvoll Zeichen den vollständigen Blob vor und nach dem Bild an
Objektnamen in der „Index“-Zeile beim Generieren der Patch-Format-Ausgabe.

--binär
Geben Sie zusätzlich zu --full-index ein binäres Diff aus, das mit git-apply angewendet werden kann.

--Abkürzung[= ]
Anstatt den vollständigen 40-Byte-Hexadezimal-Objektnamen in der Ausgabe im Diff-Raw-Format anzuzeigen
und Diff-Tree-Kopfzeilen zeigen nur einen Teil des Präfixes. Dies ist unabhängig von der
--full-index-Option oben, die das Diff-Patch-Ausgabeformat steuert. Nicht standardmäßig
Anzahl der Ziffern kann mit --abbrev= angegeben werden .

-B[ ][/ ], --break-rewrites[=[ ][/ ]]
Unterteilen Sie die Änderungen des vollständigen Umschreibens in Lösch- und Erstellungspaare. Dies dient zwei
Zwecke:

Es wirkt sich auf die Art und Weise einer Änderung aus, die einem vollständigen Neuschreiben einer Datei und nicht einer Serie gleichkommt
aus Löschungen und Einfügungen vermischt mit sehr wenigen Zeilen, die zufällig übereinstimmen
textlich als Kontext, sondern als einzelne Löschung von allem Alten, gefolgt von einem
einmalige Einfügung von allem Neuen, und die Zahl m steuert diesen Aspekt des -B
Option (standardmäßig 60 %). -B/70 % gibt an, dass weniger als 30 % des Originals vorhanden sein sollen
Bleiben Sie im Ergebnis, damit Git es als eine vollständige Neufassung betrachten kann (d. h. andernfalls die
Der resultierende Patch besteht aus einer Reihe von Lösch- und Einfügungsvorgängen, gemischt mit dem Kontext
Linien).

Bei Verwendung mit -M wird eine vollständig neu geschriebene Datei auch als Quelle von a betrachtet
umbenennen (normalerweise berücksichtigt -M nur eine Datei, die verschwunden ist, als Quelle einer Umbenennung),
und die Zahl n steuert diesen Aspekt der Option -B (standardmäßig 50 %). -B20%
Gibt an, dass eine Änderung mit Hinzufügung und Löschung im Vergleich zu 20 % oder mehr der
Dateigröße kommen als mögliche Quelle für eine Umbenennung in Frage
eine andere Datei.

-M[ ], --find-renames[= ]
Umbenennungen erkennen. Wenn n angegeben ist, handelt es sich um einen Schwellenwert für den Ähnlichkeitsindex (d. h
Anzahl der Hinzufügungen/Löschungen im Vergleich zur Dateigröße). Beispielsweise bedeutet -M90%
Git sollte ein Lösch-/Hinzufügen-Paar als Umbenennung betrachten, wenn mehr als 90 % der Datei vorhanden sind
hat sich nicht geändert. Ohne %-Zeichen ist die Zahl als Bruch zu lesen, mit a
Dezimalpunkt davor. Dh, -M5 wird zu 0.5 und entspricht somit -M50 %.
Ebenso ist -M05 dasselbe wie -M5%. Um die Erkennung auf exakte Umbenennungen zu beschränken, verwenden Sie -M100%.
Der Standard-Ähnlichkeitsindex beträgt 50 %.

-C[ ], --find-copies[= ]
Erkennen Sie Kopien und Umbenennungen. Siehe auch --find-copies-harder. Wenn n angegeben ist, ist es
hat die gleiche Bedeutung wie für -M .

--find-copys-harder
Aus Leistungsgründen findet die Option -C standardmäßig nur Kopien der Originaldatei
der Kopie wurde im selben Änderungssatz geändert. Dieses Flag veranlasst den Befehl zur Überprüfung
unveränderte Dateien als Kandidaten für die Kopierquelle. Das ist sehr teuer
Betrieb für große Projekte, also verwenden Sie es mit Vorsicht. Geben Sie mehr als eine -C-Option an
hat den gleichen Effekt.

-D, --irreversible-delete
Lassen Sie das Vorbild für Löschvorgänge weg, dh drucken Sie nur den Header, nicht jedoch den Unterschied zwischen den
preimage und /dev/null. Der resultierende Patch ist nicht dazu gedacht, mit Patch oder angewendet zu werden
git apply; Dies ist ausschließlich für Leute gedacht, die sich nur auf die Überprüfung konzentrieren möchten
Text nach der Änderung. Darüber hinaus fehlen der Ausgabe offensichtlich genügend Informationen
Wenden Sie einen solchen Patch in umgekehrter Reihenfolge an, auch manuell, daher der Name der Option.

Wenn Sie es zusammen mit -B verwenden, lassen Sie auch das Vorbild im Löschteil von a weg
Paar löschen/erstellen.

-l
Die Optionen -M und -C erfordern eine Verarbeitungszeit von O(n^2), wobei n die Anzahl von ist
potenzielle Ziele umbenennen/kopieren. Diese Option verhindert, dass die Umbenennungs-/Kopiererkennung ausgeführt wird
wenn die Anzahl der Umbenennungs-/Kopierziele die angegebene Anzahl überschreitet.

--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Wählen Sie nur Dateien aus, die hinzugefügt (A), kopiert (C), gelöscht (D), geändert (M) oder umbenannt sind
(R), deren Typ (z. B. reguläre Datei, Symlink, Submodul, ...) geändert wurde (T), sind
Nicht zusammengeführt (U), unbekannt (X) oder deren Paarung unterbrochen (B). Jede Kombination
Es können maximal XNUMX der Filterzeichen (einschließlich keines) verwendet werden. Wenn * (Alles oder nichts) hinzugefügt wird
Für die Kombination werden alle Pfade ausgewählt, wenn es eine Datei gibt, die mit anderen übereinstimmt
Kriterien im Vergleich; Wenn es keine Datei gibt, die anderen Kriterien entspricht, passiert nichts
ist ausgewählt.

-S
Suchen Sie nach Unterschieden, die die Häufigkeit des Vorkommens der angegebenen Zeichenfolge ändern
(z. B. Hinzufügen/Löschen) in einer Datei. Für den Gebrauch durch den Skripter gedacht.

Dies ist nützlich, wenn Sie nach einem genauen Codeblock (z. B. einer Struktur) suchen und möchten
Um die Geschichte dieses Blocks seit seiner Entstehung zu erfahren: Verwenden Sie die Funktion
iterativ, um den interessanten Block im Vorbild wieder in -S einzuspeisen und weiterzumachen
bis Sie die allererste Version des Blocks erhalten.

-G
Suchen Sie nach Unterschieden, deren Patchtext übereinstimmende hinzugefügte/entfernte Zeilen enthält .

Um den Unterschied zwischen -S zu veranschaulichen --pickaxe-regex und -G , halten
ein Commit mit dem folgenden Unterschied in derselben Datei:

+ return !regexec(regexp, two->ptr, 1, ®match, 0);
...
- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);

Während git log -G"regexec\(regexp" dieses Commit anzeigt, git log -S"regexec\(regexp"
--pickaxe-regex wird nicht (weil die Anzahl der Vorkommen dieser Zeichenfolge nicht stimmt).
Veränderung).

Weitere Informationen im Spitzhacke Eintritt in gitdiffcore(7) für weitere Informationen.

--pickaxe-all
Wenn -S oder -G eine Änderung findet, werden alle Änderungen in diesem Änderungssatz angezeigt, nicht nur die
Dateien, die die Änderung enthalten .

--pickaxe-regex
Behandeln Sie die wird -S als erweiterter regulärer POSIX-Ausdruck zur Übereinstimmung übergeben.


Geben Sie den Patch in der in der angegebenen Reihenfolge aus , das eine Muschelkugel hat
Muster pro Zeile. Dies überschreibt die Konfigurationsvariable diff.orderFile (siehe Git-
Config(1)). Um diff.orderFile abzubrechen, verwenden Sie -O/dev/null.

-R
Zwei Eingänge vertauschen; Das heißt, es werden Unterschiede zwischen Index oder Datei auf der Festplatte und Baum angezeigt
Inhalt.

--relative[= ]
Wenn es aus einem Unterverzeichnis des Projekts ausgeführt wird, kann es angewiesen werden, Änderungen außerhalb auszuschließen
Mit dieser Option können Sie das Verzeichnis öffnen und die Pfadnamen relativ dazu anzeigen. Wenn Sie nicht da sind
In einem Unterverzeichnis (z. B. in einem Bare-Repository) können Sie benennen, welches Unterverzeichnis erstellt werden soll
die Ausgabe relativ zu durch Angabe von a als Argument.

-ein Text
Behandeln Sie alle Dateien als Text.

--ignore-space-at-eol
Ignorieren Sie Änderungen im Leerraum bei EOL.

-b, --ignore-space-change
Ignorieren Sie Änderungen in der Menge an Leerzeichen. Dies ignoriert Leerzeichen am Zeilenende und
betrachtet alle anderen Sequenzen aus einem oder mehreren Leerzeichen als gleichwertig.

-w, --ignore-all-space
Leerzeichen beim Zeilenvergleich ignorieren. Dadurch werden Unterschiede ignoriert, selbst wenn eine Zeile vorhanden ist
Leerzeichen, wo die andere Zeile keines hat.

--leerzeilen ignorieren
Ignorieren Sie Änderungen, deren Zeilen alle leer sind.

--inter-hunk-context=
Zeigt dabei den Kontext zwischen Diff-Hunks bis zur angegebenen Anzahl von Zeilen an
Verschmelzung von Kerlen, die nahe beieinander liegen.

-W, --function-context
Zeigen Sie die gesamten umgebenden Funktionen von Änderungen an.

--exit-code
Lassen Sie das Programm mit ähnlichen Codes beenden diff(1). Das heißt, es wird mit 1 beendet, wenn dort
gab es Unterschiede und 0 bedeutet keine Unterschiede.

--ruhig
Deaktivieren Sie alle Ausgaben des Programms. Impliziert --exit-code.

--ext-diff
Ermöglicht die Ausführung eines externen Diff-Helfers. Wenn Sie einen externen Diff-Treiber mit einstellen
gittributes(5) Sie müssen diese Option mit verwenden Git-Log(1) und Freunde.

--no-ext-diff
Externe Diff-Treiber nicht zulassen.

--textconv, --no-textconv
Erlauben (oder verbieten) Sie die Ausführung externer Textkonvertierungsfilter beim Vergleich von Binärdateien
Dateien. Sehen gittributes(5) für Einzelheiten. Da es sich bei Textconv-Filtern normalerweise um a handelt
Bei der Einwegkonvertierung ist das resultierende Diff für den menschlichen Verzehr geeignet, kann es aber nicht
angewendet werden. Aus diesem Grund sind Textconv-Filter standardmäßig nur für aktiviert Git-
diff(1) und Git-Log(1), aber nicht für Git-Format-Patch(1) oder diff-Sanitärbefehle.

--ignore-submodules[= ]
Ignorieren Sie Änderungen an Submodulen in der Diff-Generierung. kann entweder „keine“ sein,
„untracked“, „dirty“ oder „all“, was die Standardeinstellung ist. Wenn Sie „none“ verwenden, wird Folgendes berücksichtigt
Submodul geändert, wenn es entweder nicht verfolgte oder geänderte Dateien oder seinen HEAD enthält
unterscheidet sich von dem im Superprojekt aufgezeichneten Commit und kann zum Überschreiben eines beliebigen verwendet werden
Einstellungen des ignorieren Option in git-config(1) oder gitmodule(5). Wenn „untracked“ ist
Verwendete Submodule gelten nicht als schmutzig, wenn sie nur nicht verfolgte Inhalte enthalten (aber
sie werden weiterhin nach geänderten Inhalten durchsucht). Bei Verwendung von „dirty“ werden alle Änderungen ignoriert
Im Arbeitsbaum der Submodule werden nur Änderungen an den Commits im Superprojekt gespeichert
angezeigt (dies war das Verhalten bis 1.7.0). Wenn Sie „all“ verwenden, werden alle Änderungen ausgeblendet
Submodule.

--src-prefix=
Zeigt das angegebene Quellpräfix anstelle von „a/“ an.

--dst-prefix=
Zeigt das angegebene Zielpräfix anstelle von „b/“ an.

--kein Präfix
Zeigt kein Quell- oder Zielpräfix an.

Eine ausführlichere Erläuterung dieser allgemeinen Optionen finden Sie auch unter gitdiffcore(7).

...
Der Wenn Parameter angegeben werden, werden sie verwendet, um den Diff auf die benannten Pfade (Sie) zu beschränken
kann Verzeichnisnamen vergeben und Diff für alle darunter liegenden Dateien abrufen).

RAW AUSGABE FORMAT


Das Rohausgabeformat von „git-diff-index“, „git-diff-tree“, „git-diff-files“ und „git
diff --raw“ sind sehr ähnlich.

Diese Befehle vergleichen alle zwei Gruppen von Dingen; Was verglichen wird, ist unterschiedlich:

Git-Diff-Index
vergleicht die und die Dateien im Dateisystem.

git-diff-index --cached
vergleicht die und der Index.

git-diff-tree [-r] [ ...]
vergleicht die durch die beiden Argumente benannten Bäume.

Git-Diff-Dateien [ ...]
vergleicht den Index und die Dateien im Dateisystem.

Der Befehl „git-diff-tree“ beginnt seine Ausgabe mit der Ausgabe des Hashs dessen, was gerade vorliegt
verglichen. Danach geben alle Befehle eine Ausgabezeile pro geänderter Datei aus.

Eine Ausgabezeile wird folgendermaßen formatiert:

Direktbearbeitung: 100644 100644 bcd1234... 0123456... M file0
Kopieren-Bearbeiten: 100644 100644 abcd123... 1234567... C68 Datei1 Datei2
umbenennen-bearbeiten :100644 100644 abcd123... 1234567... R86 Datei1 Datei3
erstellen :000000 100644 0000000... 1234567... Eine Datei4
löschen :100644 000000 1234567... 0000000... D-Datei5
nicht zusammengeführt :000000 000000 0000000... 0000000... U-Datei6

Das heißt, von links nach rechts:

1. ein Doppelpunkt.

2. Modus für „src“; 000000, wenn erstellt oder nicht zusammengeführt.

3. ein Leerzeichen.

4. Modus für „dst“; 000000, wenn gelöscht oder nicht zusammengeführt.

5. ein Leerzeichen.

6. sha1 für „src“; 0{40}, wenn erstellt oder nicht zusammengeführt.

7. ein Leerzeichen.

8. sha1 für „dst“; 0{40} bei Erstellung, nicht zusammengeführt oder „Arbeitsbaum ansehen“.

9. ein Leerzeichen.

10. Status, gefolgt von der optionalen „Score“-Nummer.

11. ein Tabulator oder ein NUL, wenn -z Option verwendet wird.

12. Pfad für „src“

13. ein Tabulator oder ein NUL, wenn -z Option wird verwendet; existiert nur für C oder R.

14. Pfad für „dst“; existiert nur für C oder R.

15. ein LF oder ein NUL, wenn -z Option wird verwendet, um den Datensatz zu beenden.

Mögliche Statusbriefe sind:

· A: Hinzufügen einer Datei

· C: Kopie einer Datei in eine neue

· D: Löschen einer Datei

· M: Änderung des Inhalts oder Modus einer Datei

· R: Umbenennen einer Datei

· T: Änderung des Dateityps

· U: Datei ist nicht zusammengeführt (Sie müssen die Zusammenführung abschließen, bevor sie festgeschrieben werden kann)

· X: „unbekannter“ Änderungstyp (höchstwahrscheinlich ein Fehler, bitte melden)

Den Statusbuchstaben C und R folgt immer eine Punktzahl (die den Prozentsatz angibt).
Ähnlichkeit zwischen Quelle und Ziel der Verschiebung oder Kopie). Statusbuchstabe M kann sein
gefolgt von einer Bewertung (die den Prozentsatz der Unähnlichkeit angibt) für das Umschreiben von Dateien.

wird nur mit Nullen angezeigt, wenn eine Datei neu im Dateisystem ist und nicht synchron ist
Der Index.

Ejemplo:

:100644 100644 5be4a4...... 000000...... M file.c

Wenn die Option -z nicht verwendet wird, werden TAB-, LF- und Backslash-Zeichen in Pfadnamen dargestellt
als \t, \n bzw. \\.

DIFF FORMAT FÜR VERSCHMELZT


„git-diff-tree“, „git-diff-files“ und „git-diff --raw“ können dauern -c or --cc Option zu
Generieren Sie eine Diff-Ausgabe auch für Merge-Commits. Die Ausgabe weicht vom beschriebenen Format ab
oben auf folgende Weise:

1. Für jedes Elternteil gibt es einen Doppelpunkt

Zweitens gibt es mehr „src“-Modi und „src“ sha2

3. Status besteht aus verketteten Statuszeichen für jedes übergeordnete Element

4. Keine optionale „Score“-Nummer

5. Einzelpfad, nur für „dst“

Ejemplo:

::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM beschreiben.c

Beachten Sie, dass kombiniert diff listet nur Dateien auf, die von allen übergeordneten Dateien geändert wurden.

ERSTELLEN PATCHES MIT -P


Wenn „git-diff-index“, „git-diff-tree“ oder „git-diff-files“ mit a ausgeführt werden -p Option: „git
diff" ohne die --roh Option oder „git log“ mit der Option „-p“ erzeugen sie das nicht
Ausgabe wie oben beschrieben; Stattdessen erstellen sie eine Patch-Datei. Sie können die Erstellung anpassen
solcher Patches über die Umgebungsvariablen GIT_EXTERNAL_DIFF und GIT_DIFF_OPTS.

Was die Option -p erzeugt, unterscheidet sich geringfügig vom herkömmlichen Diff-Format:

1. Es wird ein „git diff“-Header vorangestellt, der wie folgt aussieht:

diff --git a/file1 b/file2

Die Dateinamen a/ und b/ sind identisch, es sei denn, es handelt sich um Umbenennen/Kopieren. Besonders sogar
für eine Erstellung oder Löschung ist /dev/null nicht wird anstelle von a/ oder b/ verwendet
Dateinamen.

Beim Umbenennen/Kopieren zeigen Datei1 und Datei2 den Namen der Quelldatei an
rename/copy und der Name der Datei, die rename/copy erzeugt.

2. Es folgen eine oder mehrere erweiterte Kopfzeilen:

Alter Modus
neuer Modus
Modus für gelöschte Dateien
Neuer Dateimodus
Kopie von
Kopieren nach
umbenennen von
umbenennen in
Ähnlichkeitsindex
Unähnlichkeitsindex
Index ..

Dateimodi werden als 6-stellige Oktalzahlen einschließlich Dateityp und Datei gedruckt
Berechtigungsbits.

Pfadnamen in erweiterten Headern enthalten nicht die Präfixe a/ und b/.

Der Ähnlichkeitsindex ist der Prozentsatz unveränderter Linien und der Unähnlichkeitsindex
ist der Prozentsatz der geänderten Zeilen. Es ist eine abgerundete Ganzzahl, gefolgt von einem
Prozentzeichen. Der Ähnlichkeitsindexwert von 100 % ist somit für zwei gleiche Dateien reserviert,
während 100 % Unähnlichkeit bedeutet, dass keine Zeile aus der alten Datei in die neue übernommen wurde
eins.

Die Indexzeile enthält die SHA-1-Prüfsumme vor und nach der Änderung. Der Ist
enthalten, wenn sich der Dateimodus nicht ändert; andernfalls geben separate Zeilen das Alte an
und der neue Modus.

3. TAB-, LF-, doppelte Anführungszeichen und Backslash-Zeichen in Pfadnamen werden als \t, \n,
\" bzw. \\. Wenn eine solche Ersetzung erforderlich ist, dann das Ganze
Der Pfadname wird in doppelte Anführungszeichen gesetzt.

4. Alle Datei1-Dateien in der Ausgabe beziehen sich auf Dateien vor dem Festschreiben und alle Datei2
Dateien beziehen sich auf Dateien nach dem Commit. Es ist falsch, jede Änderung auf jede einzelne anzuwenden
Datei nacheinander ablegen. Mit diesem Patch werden beispielsweise a und b vertauscht:

diff --git a/ab/b
umbenennen von a
umbenennen in b
diff --git a/bb/a
Umbenennen von b
umbenennen in a

KOMBINIERT DIFF FORMAT


Jeder Diff-erzeugende Befehl kann die Option -c oder --cc verwenden, um einen zu erzeugen kombiniert diff wann
zeigt eine Zusammenführung. Dies ist das Standardformat beim Anzeigen von Zusammenführungen mit git-diff(1) oder Git-
erklären(1). Beachten Sie auch, dass Sie jedem dieser Befehle die Option -m geben können, um sie zu erzwingen
Generierung von Diffs mit einzelnen übergeordneten Elementen einer Zusammenführung.

A kombiniert diff Format sieht so aus:

diff --combined beschreiben.c
Index fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}

- static void beschreiben(char *arg)
-static void beschreiben(struct commit *cmit, int last_one)
++static void beschreiben(char *arg, int last_one)
{
+ unsigned char sha1[20];
+ struct commit *cmit;
struct commit_list *list;
static int initialisiert = 0;
struct commit_name *n;

+ if (get_sha1(arg, sha1) < 0)
+ Nutzung(describe_usage);
+ cmit = lookup_commit_reference(sha1);
+ if (!cmit)
+ Nutzung(describe_usage);
+
if (!initialized) {
initialisiert = 1;
for_each_ref(get_name);

1. Es wird ein „git diff“-Header vorangestellt, der so aussieht (when -c Option ist
benutzt):

diff --combined-Datei

oder so (wann --cc Option wird verwendet):

diff --cc-Datei

2. Es folgen eine oder mehrere erweiterte Kopfzeilen (dieses Beispiel zeigt eine Zusammenführung mit
zwei Eltern):

Index , ..
Modus , ..
Neuer Dateimodus
Modus für gelöschte Dateien ,

Der Modus , .. Zeile erscheint nur, wenn mindestens eine der Ist
anders als der Rest. Erweiterte Header mit Informationen zu erkannten Inhalten
Bewegung (Umbenennen und Kopiererkennung) sind für die Arbeit mit Diff von zwei ausgelegt
und werden nicht vom kombinierten Diff-Format verwendet.

3. Es folgt ein zweizeiliger From-File/To-File-Header

--- eine Datei
+++ b/Datei

Ähnlich dem zweizeiligen Header für herkömmliche einheitlich Diff-Format, /dev/null wird verwendet
Signal erstellte oder gelöschte Dateien.

4. Das Chunk-Header-Format wurde geändert, um zu verhindern, dass Personen es versehentlich weiterleiten
Patch -p1. Das kombinierte Diff-Format wurde zur Überprüfung von Merge-Commit-Änderungen erstellt
war nicht für die Bewerbung gedacht. Die Änderung ähnelt der Änderung im erweiterten Index
Header:

@@@ @@@

Es gibt (Anzahl der Eltern + 1) @-Zeichen im Chunk-Header für kombinierte Diff
Format.

Im Gegensatz zu den traditionellen einheitlich Diff-Format, das zwei Dateien A und B mit einem einzigen zeigt
Spalte mit - (Minus – erscheint in A, wird aber in B entfernt), + (Plus – fehlt in A, fehlt aber
B hinzugefügt) oder das Präfix „ “ (Leerzeichen – unverändert), dieses Format vergleicht zwei oder mehr Dateien
Datei1, Datei2,... mit einer Datei X und zeigt, wie sich X von jeder DateiN unterscheidet. Eine Spalte
für jede DateiN wird der Ausgabezeile vorangestellt, um zu vermerken, wie sich die Zeile von X unterscheidet
es.

A - Zeichen in der Spalte N bedeutet, dass die Zeile in DateiN erscheint, aber nicht erscheint
im Ergebnis. Ein +-Zeichen in der Spalte N bedeutet, dass die Zeile im Ergebnis erscheint,
und fileN hat diese Zeile nicht (mit anderen Worten, die Zeile wurde ab dem Punkt hinzugefügt).
Ansicht dieses Elternteils).

In der obigen Beispielausgabe wurde die Funktionssignatur in beiden Dateien geändert (daher zwei).
- Entfernungen sowohl aus Datei1 als auch aus Datei2, plus ++, um zu bedeuten, dass eine hinzugefügte Zeile dies nicht tut
erscheinen entweder in Datei1 oder Datei2). Auch acht weitere Zeilen sind mit Datei1 identisch, tun es aber
erscheint nicht in Datei2 (daher mit dem Präfix +).

Wenn es von git diff-tree -c angezeigt wird, werden die übergeordneten Elemente eines Merge-Commits mit dem Merge verglichen
Ergebnis (d. h. Datei1..DateiN sind die übergeordneten Elemente). Wenn es von git diff-files -c angezeigt wird, wird es verglichen
Die beiden ungelösten übergeordneten Elemente werden mit der Arbeitsbaumdatei zusammengeführt (d. h. Datei 1 ist Stufe 2, auch bekannt als
„unsere Version“, Datei2 ist Stufe 3, auch bekannt als „ihre Version“).

anderes DIFF FORMATEN


Die Option --summary beschreibt neu hinzugefügte, gelöschte, umbenannte und kopierte Dateien. Der --stat
Option fügt hinzu diffstat(1) Diagramm zur Ausgabe. Diese Optionen können mit anderen kombiniert werden
Optionen wie -p sind für den menschlichen Verzehr gedacht.

Wenn eine Änderung angezeigt wird, die ein Umbenennen oder Kopieren beinhaltet, formatiert die Ausgabe von --stat die
Pfadnamen kompakt durch Kombination gemeinsamer Präfixe und Suffixe der Pfadnamen. Zum Beispiel ein
Änderung, die arch/i386/Makefile nach arch/x86/Makefile verschiebt und dabei 4 Zeilen ändert
so dargestellt:

arch/{i386 => x86}/Makefile | 4 +--

Die Option --numstat gibt die diffstat(1) Informationen, aber für eine einfachere Maschine konzipiert
Verbrauch. Ein Eintrag in der Ausgabe von --numstat sieht folgendermaßen aus:

1 2 README
3 1 arch/{i386 => x86}/Makefile

Das heißt, von links nach rechts:

1. die Anzahl der hinzugefügten Zeilen;

2. eine Registerkarte;

3. die Anzahl der gelöschten Zeilen;

4. eine Registerkarte;

5. Pfadname (ggf. mit Umbenennungs-/Kopierinformationen);

6. eine neue Zeile.

Wenn die Ausgabeoption -z aktiv ist, wird die Ausgabe folgendermaßen formatiert:

1 2 README NUL
3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL

Das heißt:

1. die Anzahl der hinzugefügten Zeilen;

2. eine Registerkarte;

3. die Anzahl der gelöschten Zeilen;

4. eine Registerkarte;

5. eine NUL (existiert nur, wenn umbenannt/kopiert);

6. Pfadname im Vorbild;

7. eine NUL (existiert nur, wenn umbenannt/kopiert);

8. Pfadname im Postimage (existiert nur, wenn umbenannt/kopiert);

9. eine NUL.

Die zusätzliche NUL vor dem Preimage-Pfad im umbenannten Fall dient dazu, Skripts zu ermöglichen, die das lesen
Ausgabe, um festzustellen, ob der aktuell gelesene Datensatz ein Single-Path-Datensatz oder eine Umbenennung/Kopie ist
Aufzeichnen, ohne vorher zu lesen. Nach dem Lesen hinzugefügter und gelöschter Zeilen wird bis NUL gelesen
würde den Pfadnamen ergeben, aber wenn dieser NUL ist, zeigt der Datensatz zwei Pfade an.

Beispiele:


Verschiedene Möglichkeiten, Ihren Arbeitsbaum zu überprüfen

$ git diff (1)
$ git diff --cached (2)
$ git diff HEAD (3)

1. Änderungen im Arbeitsbaum sind noch nicht für den nächsten Commit bereitgestellt.
2. Änderungen zwischen dem Index und Ihrem letzten Commit; was würden Sie begehen, wenn Sie
Führen Sie „git commit“ ohne die Option „-a“ aus.
3. Änderungen im Arbeitsbaum seit Ihrem letzten Commit; was würden Sie begehen, wenn
Sie führen „git commit -a“ aus

Vergleich mit willkürlichen Commits

$ Git Diff-Test (1)
$ git diff HEAD -- ./test (2)
$ git diff HEAD^ HEAD (3)

1. Anstatt die Spitze des aktuellen Zweigs zu verwenden, vergleichen Sie sie mit der Spitze von „test“.
Ast.
2. Anstatt mit der Spitze des „Test“-Zweigs zu vergleichen, vergleichen Sie mit der Spitze des Zweigs
aktuellen Zweig, beschränken Sie den Vergleich jedoch auf die Datei „test“.
3. Vergleichen Sie die Version vor dem letzten Commit und die Version vor dem letzten Commit.

Branchen vergleichen

$ git diff Topic Master (1)
$ git diff topic..master (2)
$ git diff topic...master (3)

1. Änderungen zwischen den Tipps des Themas und den Hauptzweigen.
2. Das gleiche wie oben.
3. Änderungen, die im Hauptzweig seit dem Start des Themenzweigs aufgetreten sind
Weg von ihm.

Begrenzung der Diff-Ausgabe

$ git diff --diff-filter=MRC (1)
$ git diff --name-status (2)
$ git diff arch/i386 include/asm-i386 (3)

1. Es werden nur Änderungen, Umbenennungen und Kopien angezeigt, nicht jedoch Hinzufügungen oder Löschungen.
2. Zeigt nur Namen und die Art der Änderung an, nicht jedoch die tatsächliche Diff-Ausgabe.
3. Beschränken Sie die Diff-Ausgabe auf benannte Teilbäume.

Munging der Diff-Ausgabe

$ git diff --find-copies-harder -B -C (1)
$ git diff -R (2)

1. Verbringen Sie zusätzliche Zyklen mit der Suche nach Umbenennungen, Kopien und vollständigen Neuschreibungen (sehr teuer).
2. Ausgabedifferenz in umgekehrter Reihenfolge.

Verwenden Sie git-diff online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad




×
Werbung
❤ ️Hier einkaufen, buchen oder kaufen – kostenlos, damit die Dienste kostenlos bleiben.