Es gibt zwei Szenarien zum Vergleichen von Dateien:
Szenario 1: Vergleichen Sie Dateien in Remote-Zweigen (beide Zweige sollten im Remote-Repository vorhanden sein).
Szenario 2: Vergleichen Sie lokale Dateien (bei Kopie des lokalen Arbeitsbereichs) mit den Dateien im Remote-Repository.
Die Logik ist einfach. Wenn Sie zwei zu unterscheidende Zweignamen angeben, werden immer die Remote-Zweige verglichen. Wenn Sie nur einen Zweignamen angeben, wird Ihre lokale Arbeitskopie immer mit dem Remote-Repo (dem von Ihnen angegebenen) verglichen. Sie können range verwenden, um Remote-Repositorys bereitzustellen.
zB Kasse einer Filiale
git checkout branch1
git diff branch2 [filename]
Wenn Sie in diesem Fall einen Dateinamen angeben , wird Ihre lokale Kopie des Dateinamens mit dem Remote-Zweig " branch2 " verglichen .
git diff branch1 branch2 [filename]
In diesem Fall wird der Dateiname von Remote-Zweigen mit dem Namen " branch1 " mit " branch2 " verglichen.
git diff ..branch2 [filename]
In diesem Fall wird auch der Dateiname von Remote-Zweigen mit dem Namen " branch1 " mit " branch2 " verglichen . Also, es ist das gleiche wie oben. Wenn Sie jedoch gerade einen Zweig aus einem anderen Zweig erstellt haben, z. B. "master", und Ihr aktueller Zweig nicht im Remote-Repository vorhanden ist, wird Remote " master " mit remote " branch2 " verglichen .
Hoffe es ist nützlich.
git diff branch1 branch2 myfile.cs
. (Das--
sollte nicht mehr nötig sein, da es nur bis zu zwei Revisionsargumente aufnehmen kann.)