Ich habe zwei Filialen: branch_1
und branch_2
.
Wie kann ich die Unterschiede zwischen ihnen sehen?
isuruanu
Ich habe zwei Filialen: branch_1
und branch_2
.
Wie kann ich die Unterschiede zwischen ihnen sehen?
Fauler Dachs
Sie verwenden möchten git diff.
git diff [<options>] <commit>..<commit> [--] [<path>…]
Woher <commit>
ist Ihr Zweigname, der Hash eines Commits oder eine abgekürzte symbolische Referenz
Zum Beispiel git diff abc123..def567
oder git diff HEAD..origin/master
Dadurch wird der Unterschied zwischen den Spitzen der beiden Äste erzeugt. Wenn Sie es vorziehen, den Unterschied von ihrem gemeinsamen Vorfahren zum Testen zu finden, können Sie verwenden drei Punkte statt zwei:
git diff <commit>...<commit>
Und wenn Sie nur prüfen möchten, welche Dateien sich unterscheiden, nicht wie sich der Inhalt unterscheidet, verwenden Sie --name-only
:
git diff --name-only <commit>..<commit>
Beachten Sie, dass in der <commit>..<commit>
(zwei Punkte) Syntax, die Punkte sind optional; folgendes ist synonym:
git diff commit1 commit2
Dieselbe Syntax funktioniert für den Vergleich einer Verzweigung mit einem Tag oder eines Tags mit einem anderen Tag.
– Daniel Sohar
27. Mai 2013 um 7:02 Uhr
Beachten Sie, dass Sie nach den beiden obigen Befehlen auch einen Datei- oder Ordnernamen hinzufügen können.
– msanford
28. Juli 2014 um 16:54 Uhr
@chiyachaiya deine Erklärung hat mir geholfen, aber git diff b1 … b2 ist nicht dasselbe wie git diff b2 … b1. Zum Beispiel, sobald wir b2 von b1 aus gestartet haben und wenn wir einige Änderungen an b1 vornehmen, zeigt git diff b2…b1 Änderungen an b1 an, nachdem b2 gestartet wurde. Wenn wir git diff b1…b2 machen, werden Änderungen an b2 vorgenommen, die nicht in b1 sind.
– Chintak Chhapia
10. Februar 2015 um 6:45 Uhr
Wenn du bekommst fatal: bad revision 'some-branch'
dann ist dies wahrscheinlich eine Remote-Zweigstelle. Sie brauchen wahrscheinlich so etwas wie git diff remotes/origin/some-branch my-local-branch
– Dalin
13. Oktober 2015 um 17:41 Uhr
git diff ..branch_2
vergleicht den ausgecheckten Zweig mit Zweig_2
– sweisgerber.dev
6. März 2017 um 13:10 Uhr
Es ist sehr einfach. Sie gehen einfach zu einer Filiale (zB main
ist Ihre Filiale).
Führen Sie den Befehl aus
git checkout main
git diff branch2
Das hat bei mir nicht funktioniert, es zeigte keine Änderungen. Ich hatte allerdings nur lokale Commits.
– rauben
Vor 2 Tagen
Nagibaba
Code ist einfach git diff master..develop
Optionen:
--name-only
um nur die Namen der Dateien zu sehen.-- folderOrFileName
Am Ende.fetch --all
um alle entfernten Branches abzurufen und auszuführen git diff --name-only [branchName]..origin/[branchName]
. Zum Beispiel git diff --name-only develop..origin/develop
Es gibt viele verschiedene Möglichkeiten, Zweige zu vergleichen, und es hängt von dem spezifischen Anwendungsfall ab, den Sie benötigen.
Oft möchten Sie vergleichen, weil etwas kaputt ist, und Sie möchten sehen, was sich geändert hat, es dann reparieren und erneut sehen, was sich geändert hat, bevor Sie es festschreiben.
Persönlich, wenn ich den Unterschied sehen möchte, was ich gerne mache:
git checkout branch_1 # checkout the oldest branch
git checkout -b compare-branch # create a new branch
git merge --no-commit --squash branch_2 # put files from the new branch in the working folder
git status # see file names that changes
git diff # see the content that changed.
Mit dieser Lösung sehen Sie den Unterschied, Sie können auch nur die Dateinamen sehen git status
und der wichtigste Teil, den Sie ausführen können branch_2
während Sie das Diff sehen (branch_2 befindet sich im Arbeitsbaum). Wenn etwas kaputt gegangen ist, können Sie die Dateien bearbeiten und reparieren. Sie können jederzeit erneut eingeben git status
oder git diff
um den Unterschied von der neuen Bearbeitung zu sehen branch_a
.
Sie können den Unterschied einfach zeigen, indem Sie-
git diff b1...b2
Oder Sie können den Commit-Unterschied anzeigen, indem Sie Folgendes verwenden:
git log b1..b2
Sie können den Commit-Unterschied auf schöne grafische Weise mit –
git log --oneline --graph --decorate --abbrev-commit b1..b2
Sie wollen etwas anderes als das Geradlinige
git diff branch_1 branch_2
? (Beachten Sie, wenn die Namen branch_1 und branch_2 auch Dateien benennen, benötigen Siegit diff branch_1 branch_2 --
)– Torek
23. März 2012 um 5:53 Uhr
stackoverflow.com/questions/822811/differences-in-git-branches
– Bijendra
23. März 2012 um 6:15 Uhr
Das zitierte Duplikat beantwortet die Frage nicht … Feststellen, welche Dateien sich geändert haben
git diff --name-status master..branchName
ist deutlich anders, als die genauen Unterschiede zwischen Zweigen mit so etwas zu sehengit diff branch_1 branch_2
. Oder vielleicht übersehe ich etwas Offensichtliches …– jww
19. August 2016 um 8:14 Uhr
Das “Duplizieren” ist nicht nur eine andere Frage, diese Frage ist auch das Google-Match Nummer eins für “Git Diff Two Branches”.
– Rob Osborne
6. Juni 2017 um 13:08 Uhr
git difftool branch..otherBranch
lässt Sie die Unterschiede in dem von Ihnen gewählten visuellen Tool SEHEN. zB Meld. Das ist die Antwort.– Greg Rundlett
30. Januar 2018 um 2:18 Uhr