Jak mohu porovnat stejný soubor mezi dvěma různými revizemi ve stejné větvi?

Jak bych mohl v systému Git porovnat stejný soubor mezi dvěma různými revizemi (nesousedícími) ve stejné větvi (například master)?

Hledám funkci compare podobnou té ve Visual SourceSafe (VSS) nebo Team Foundation Server (TFS). Je to možné v systému Git?

Řešení

Z manuálové stránky git-diff:

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

Chcete-li například zjistit rozdíl pro soubor "main.c" mezi současným stavem a stavem o dvě revize zpět, zde jsou tři ekvivalentní příkazy:

$ git diff HEAD^^ HEAD main.c
$ git diff HEAD^^..HEAD -- main.c
$ git diff HEAD~2 HEAD -- main.c
Komentáře (12)

Můžete také porovnat dva různé soubory ve dvou různých revizích, například takto:

git diff : :

Komentáře (3)

Pokud chcete zobrazit všechny změny v souboru mezi dvěma revizemi po jednotlivých revizích, můžete také provést následující příkaz.

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

Komentáře (2)