Antworten:
Geben Sie einen Pfad ein (in diesem Fall mein Ordner) und führen Sie einfach Folgendes aus:
git diff myfolder/
git diff -- myfolderum die Mehrdeutigkeit von Git zu minimieren. Die allgemeine Notation für git diff (und viele git-Befehle) lautet, git diff [commit-ish] -- [path]dass commit-ish standardmäßig HEAD (wo Sie sich gerade befinden) und [path]standardmäßig das git-Stammverzeichnis verwendet, aber alles relativ zu Ihrem aktuellen Verzeichnis sein kann. Ohne das --wird git raten, was du meinst, [commit-ish]oder [path]. In einigen Fällen führt dies dazu, dass git sagt, die Notation sei "mehrdeutig". Wenn ich mich richtig erinnere.
git diff master..develop myfolder/einschließen, zwischen denen Sie unterscheiden möchten, wie @CrandellWS im Kommentar zur ursprünglichen Frage sagte. Der Git-Status zeigt Ihnen Änderungen an, wenn Sie danach suchen.
Wenn Sie verschiedene Zweige vergleichen, müssen Sie --eine Git-Revision von einem Dateisystempfad trennen. Zum Beispiel mit zwei lokalen Niederlassungen masterund bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Oder von einer lokalen Niederlassung zu einer Fernbedienung:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Sie sollten es sich zur Gewohnheit machen, in der Dokumentation nach solchen Dingen zu suchen. Es ist sehr nützlich und wird Ihre Fähigkeiten sehr schnell verbessern. Hier ist das relevante Bit, wenn Sie dies tungit help diff
git diff [options] [--no-index] [--] <path> <path>
Die beiden <path>s müssen Sie in die betreffenden Verzeichnisse ändern.
Fügen Sie Beyond Compare als Ihr Difftool in Git hinzu und fügen Sie einen Alias für diffdir hinzu als:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Holen Sie sich den Gitdiff als:
git diffdir 4bc7ba80edf6 7f566710c7
Referenz: Vergleichen Sie ganze Verzeichnisse mit git difftool + Beyond Compare
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"stattdessen
--no-symlinksOption hinzufügen, damit der Befehl lautetgit difftool --dir-diff --no-symlinks
Sie können nicht nur einen Pfad hinzufügen, sondern auch hinzufügen git diff --relative, um das Ergebnis relativ zu diesem Ordner zu erhalten.
git -C a/folder diff --relative
Und mit Git 2.28 (Q3 2020) haben die Befehle in der diffFamilie " " gelernt, die diff.relativeKonfigurationsvariable " " zu berücksichtigen.
Siehe Commit c28ded8 (22. Mai 2020) von Laurent Arnoud ( spk) .
(Zusammengeführt von Junio C Hamano - gitster- in Commit e34df9a , 02. Juni 2020)
diff: Konfigurationsoption hinzufügenrelativeUnterzeichnet von: Laurent Arnoud
Bestätigt von: Đoàn Trần Công DanhDie auf
diff.relativeboolesche Option festgelegte Optiontruezeigt nur Änderungen im aktuellen Verzeichnis / Wert an, die durch daspathArgument derrelativeOption angegeben werden, und zeigt Pfadnamen relativ zum oben genannten Verzeichnis an.Lehren Sie
--no-relative, früher zu überschreiben--relativeFügen Sie für git-format-patch (1) Optionsdokumentation
--relativeund--no-relative
Die Dokumentation enthält jetzt :
diff.relative::Bei Einstellung auf '
true' zeigt 'git diff' keine Änderungen außerhalb des Verzeichnisses und Pfadnamen relativ zum aktuellen Verzeichnis an.
Wenn Sie die Unterverzeichnisse ausschließen möchten, können Sie verwenden
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Um Beyond Compare als Difftool für Directory Diff zu verwenden, denken Sie daran, aktivieren Sie folgen Sie symbolischen Links wie folgt:
In einer Ordnervergleichsansicht → Regeln (Schiedsrichtersymbol):
Aktivieren Sie anschließend die folgenden symbolischen Links und aktualisieren Sie die Sitzungsstandards:
ODER,
Richten Sie den Alias folgendermaßen ein:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Beachten Sie, dass in beiden Fällen alle Änderungen an der Seite (links oder rechts), die sich auf den aktuellen Arbeitsbaum beziehen, beibehalten werden.
git diff master..yourbranch path/to/folder