1504 Stimmen

Wie vergleicht man einen lokalen Git-Zweig mit seinem Remote-Zweig

Wie kann ich den Unterschied zwischen einem lokalen Branch und einem Remote-Branch sehen?

1627voto

Jakub Narębski Punkte 286531
git diff  /

Zum Beispiel, git diff main origin/main oder git diff featureA origin/next

Natürlich musst du zu sagen haben remote-tracking branch, musst du zuerst git fetch; und du brauchst aktuelle Informationen über die Branches im Remote-Repository.

830voto

meder omuraliev Punkte 177513

Um Remote-Tracking-Zweige zu aktualisieren, müssen Sie zuerst git fetch eingeben und dann:

git diff  

Sie können git branch -a eingeben, um alle Zweige (lokal und remote) aufzulisten, und dann den Zweignamen aus der Liste auswählen (entfernen Sie einfach remotes/ aus dem Remote-Zweig-Namen.

Beispiel: git diff main origin/main (wobei "main" der lokale Hauptzweig ist und "origin/main" ein Remote-Zweig ist, nämlich der Ursprung und der Hauptzweig.)

289voto

Andrew Grimm Punkte 73882

Wenn Sie sich auf einem bestimmten Branch befinden und Ihren Arbeitskopie mit dem Upstream-Branch vergleichen möchten, den Sie verfolgen, verwenden Sie:

git diff @{upstream}

Wenn Sie Ihren aktuellen HEAD mit dem Upstream-Branch vergleichen möchten (danke @Arijoon):

git diff @ @{upstream}

Wenn Ihr Upstream nicht festgelegt ist, können Sie @{push} verwenden, um einen Unterschied gegenüber dem Branch zu erhalten, zu dem Sie setzen werden, um zu pushen (auch aus dem Kommentar von @Arijoon):

git diff @{push}

Laut dieser Antwort hat die git-Dokumentation für das Spezifizieren von Revisionen:

@{upstream}, z.B. master@{upstream}, @{u}
Der Suffix @{upstream} zu einem Branchnamen (Kurzform @{u}) bezieht sich auf den Branch, auf dem der durch branchname angegebene Branch zur Erstellung oben konfiguriert ist mit branch..remote und branch..merge). Ein fehlender branchname wird auf den aktuellen gesetzt.

211voto

YSN Punkte 2444

Erster Typ

git branch -a

um die Liste der verfügbaren Branches zu erhalten. In der Ausgabe sehen Sie möglicherweise etwas Ähnliches wie

* master
  remotes/main/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/mt
  remotes/upstream/master
  remotes/upstream/mt

Zeigen Sie dann den Unterschied

git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master

48voto

manfer Punkte 487

Ich verstehe den Output von viel besser:

git diff

Das zeigt mir, was fallen gelassen und was hinzugefügt wird, wenn ich den lokalen Branch pushe. Natürlich ist es dasselbe, nur umgekehrt, aber für mich ist es lesbarer und ich fühle mich wohler dabei, zu sehen, was passieren wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X