Πώς μπορώ να διαφοροποιήσω το ίδιο αρχείο μεταξύ δύο διαφορετικών commits στον ίδιο κλάδο;

Στο Git, πώς θα μπορούσα να συγκρίνω το ίδιο αρχείο μεταξύ δύο διαφορετικών commits (όχι συνεχόμενων) στον ίδιο κλάδο (master για παράδειγμα);

Ψάχνω για μια λειτουργία συγκρίσεων όπως αυτή στο Visual SourceSafe (VSS) ή στον Team Foundation Server (TFS). Είναι δυνατόν στο Git;

Λύση

Από το [git-diff][1] manpage:

git diff [--options]   [--] [<path>...]

Για παράδειγμα, για να δείτε τη διαφορά για ένα αρχείο "main.c" μεταξύ τώρα και δύο commits πίσω, εδώ είναι τρεις ισοδύναμες εντολές:

$ git diff HEAD^^ HEAD main.c
$ git diff HEAD^^..HEAD -- main.c
$ git diff HEAD~2 HEAD -- main.c

[1]: https://www.kernel.org/pub/software/scm/git/docs/git-diff.html "Kernel.org version of git-diff manpage&quot,

Σχόλια (12)

Μπορείτε επίσης να συγκρίνετε δύο διαφορετικά αρχεία σε δύο διαφορετικές αναθεωρήσεις, ως εξής:

git diff <revision_1>:<file_1> <revision_2>:<file_2>

Σχόλια (3)

Αν θέλετε να δείτε όλες τις αλλαγές στο αρχείο μεταξύ των δύο δεσμεύσεων ανά δέσμευση, μπορείτε επίσης να κάνετε

git log -u $start_commit..$end_commit -- path/to/file

Σχόλια (2)