Angenommen, ich habe ein Repository geklont und begonnen, Dateien zu ändern. Ich weiß, dass ich, wenn ich lokale nicht festgeschriebene Änderungen habe, einen git diff test.txt
Unterschied wie folgt machen kann, der mir den Unterschied zwischen dem aktuellen lokalen HEAD und den geänderten, nicht festgeschriebenen Änderungen in der Datei zeigt. Wenn ich diese Änderungen festschreibe, kann ich sie mithilfe von mit dem ursprünglichen Repository vergleichengit diff master origin/master
Aber gibt es eine Möglichkeit, die lokalen Änderungen vom ursprünglichen Repository auf dem Server zu unterscheiden, bevor sie lokal festgeschrieben werden? Ich habe verschiedene Permutationen git diff --cached master origin/master
ohne Glück ausprobiert .
Antworten:
Da das Remote-Repository über zwischengespeichert wurde
git fetch
, sollte es möglich sein, mit diesen Commits zu vergleichen. Versuche Folgendes:quelle
git diff master origin/master
sie immer noch mit der festgeschriebenen Version verglichen (im Nachhinein offensichtlich). Wenn Sie jedoch den Master weglassen, werden die lokalen Änderungen jetzt mit der abgerufenen Version verglichen.origin master
und woandersorigin/master
. Es gibt noch viel zu tun, IMHO.git diff origin/master
Rückgabemeisterfatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
existiert jedoch am Ursprung, z. B.git fetch origin master
funktioniert gut,Ich weiß, dass es keine Antwort auf die genaue gestellte Frage ist, aber ich fand diese Frage, um eine Datei in einem Zweig und eine lokale nicht festgeschriebene Datei zu unterscheiden, und ich dachte, ich würde sie teilen
Syntax:
Beispiele:
(Vielen Dank an Eric Boehs für die Möglichkeit, den Dateinamen nicht zweimal eingeben zu müssen.)
quelle
commit-ish
und dem Doppelpunkttrennzeichen nicht finden . Die Dokumente auf git-diff scheinen es nicht zu erwähnen. Ich habe es so lange benutzt, dass ich mich nicht mehr daran erinnere, wo ich es zuerst gefunden habe. Wahrscheinlich die Beispiele anderer Leute zu anderen Befehlen, mit denen ich gerade experimentiert habegit-diff
. Ich fürchte, eine andere Antwortcommit-ish
ist die beste, die ich im Moment finden kann.git diff master:./ -- README.md
. Auf diese Weise müssen Sie nichtREADME.md
zweimal eingeben und können es einfacher zu einem Alias hinzufügen.git diff master: -- README.md
das./
schafft eine/dev/null
Quelle , anstatt den Fern Zweig. Verwenden von Git-Version 2.19.0Anzeigen von nicht bereitgestellten (nicht hinzugefügten) Änderungen an vorhandenen Dateien
git diff
Beachten Sie, dass dadurch keine neuen Dateien verfolgt werden. Bereitgestellte, nicht festgeschriebene Änderungen anzeigen
git diff --cached
quelle
Wenn Sie Dateien visuell vergleichen möchten, können Sie Folgendes verwenden:
Es startet Ihre Diff-App automatisch für jede geänderte Datei.
PS: Wenn Sie keine Diff-App festgelegt haben, können Sie dies wie im folgenden Beispiel tun (ich verwende Winmerge ):
quelle