2016-07-05 9 views
1

Ich habe ein Repository auf ein (unbekanntes) Tag ausgecheckt (momentan nicht in jedem Zweig) und mit einigen lokalen Änderungen nicht in den Index eingecheckt. Wenn ich git diff auf einer Datei laufe, gibt es mir einige Änderungen, bei denen ich nicht sicher bin, in welchem ​​Commit sie sind. Ich möchte das diff an den Anfang eines bestimmten Zweiges bringen. Gibt es einen git diff-Befehl dafür? so etwas wie:Wie kann ich diff lokale Änderungen in einem anderen Zweig git?

git diff myLocalFile myRemoteBranch 

Antwort

1

Sie eine bestimmte Datei mit diff unter Verwendung -- am Ende des Befehls angeben.

Sie können auch den Zeiger HEAD verwenden, um anzugeben, wo Sie sich gerade befinden, anstatt das Tag angeben zu müssen, auf dem Sie sich befinden.

Beispiel:

git diff HEAD..myRemoteBranch -- relative/path/to/myLocalFile 

Oder, einfacher gesagt:

git diff myRemoteBranch -- relative/path/to/myLocalFile 
Auch

, wenn Sie tatsächlich gegen eine "remote" Zweig vergleichen wollen, dann sollten Sie diesen Zweig verweisen auf ein remote mit wie :

git fetch # retrieve latest from server 
git diff origin/myRemoteBranch -- relative/path/to/myLocalFile 
+0

Ich bin verwirrt, da dies keine Änderungen zu erkennen scheint, obwohl es einige gibt ... T Die lokalen Änderungen werden jedoch nicht in den Index eingecheckt – a1an

+0

Ah ... Sie müssen möglicherweise zuerst "commit", um den Unterschied Ihrer Änderungen gegenüber einem anderen Zweig zu sehen. Ich würde empfehlen, einen neuen Zweig von Ihrem aktuellen Punkt zu erstellen ('checkout -b myBranch'), staging (' add') und commit ('commit') und dann den' diff' Befehl zu verwenden, um die Änderungen zu sehen. –

+0

Bingo! Ohne den HEAD .. erkennt es die Änderungen gegenüber dem angegebenen Zweig. – a1an