Entschuldigung, wenn diese Frage existiert, konnte ich sie überraschenderweise nicht finden: /
Wie kann ich eine git diff
zwischen zwei Dateien innerhalb desselben Zweigs und desselben Commits ausführen ?
dh git diff fileA.php fileB.php
(Idealerweise mit der einfach zu lesenden Farbcodierung, die git
bietet .... oder ähnlich wie das Programm BeyondCompare!)
Antworten:
Sie brauchen dafür kein Git, verwenden Sie einfach
diff fileA.php fileB.php
(oder vimdiff, wenn Sie einen Vergleich nebeneinander wünschen).quelle
vimdiff
für den Sieg! Vielen Dank!git diff
sondern einfach nach einem einfach zu lesenden Diff sucht . Auch die Tatsache, dass er meine Antwort als das akzeptiert hat, wonach er gesucht hat, zeigt auch, dass sie sie tatsächlich beantwortet.diff fileA fileB
nichtgit diff fileA fileB
Wenn Sie
git diff
zwei beliebige Dateien verwenden möchten, können Sie diese verwendengit diff --no-index <file_a> <file_b>
. Die beiden Dateien müssen nicht nachverfolgt werden,git
damit dies funktioniert.quelle
--word-diff
hebt Änderungen nach Wort hervor, nicht nur nach Zeilediff
hat--color
, was helfen könnte (siehe unix.stackexchange.com/a/338960 ). Aber selbst dann, wenn es verwendet wirddiff-so-fancy
, scheint es das spezifische Ausgabeformat von zu erforderngit diff
.diff -u
(siehe stackoverflow.com/a/4857407/10095231 ) funktioniert nicht.Wenn sich die zu vergleichenden Dateien in Ihrer Arbeitskopie befinden, können Sie sie einfach
diff
wie von den anderen angegeben verwenden. Wenn sich die Dateien jedoch in einer Revision befinden, können Sie für jede Datei eine Revision angebenwie hier angegeben: https://stackoverflow.com/a/3343506/1815446
In Ihrem Fall (Angabe derselben Revision für beide Dateien):
quelle
HEAD~2
ein SHA-1, eingit diff --name-only HEAD:dir1 HEAD:dir1_backup
funktioniert nach einemgit add
der beiden Verzeichnisse.Um reguläres Gnu Diff eher wie Git Diff aussehen zu lassen, würde ich folgende Parameter empfehlen:
(wo
-b
Leerzeichen ignorieren,-u
einheitliches Diff,-r
rekursiv,-N
fehlende Dateien als behandeln/dev/null
).Es funktioniert großartig, hat aber immer noch keine Farben und Auto-Paging im Git-Stil fehlt praktisch. Wenn Sie beide Probleme beheben möchten (ich tue es), installieren
colordiff
und verwenden Sie es wie folgt:Dies ergibt eine Ausgabe und eine Schnittstelle, die der tatsächlichen sehr nahe kommt
git diff
.quelle
Wenn Sie zwei lokale Dateien im selben Verzeichnis unterscheiden möchten, verwenden Sie einfach diff.
quelle
Verwenden Sie einfach reguläres Diff.
quelle