Jak porównać dwa tagi z git?

435

Chciałbym zrobić różnicę między dwoma znacznikami i zatwierdzić zmiany między tymi dwoma znacznikami. Czy możesz mi powiedzieć polecenie?

bsd
źródło

Odpowiedzi:

744
$ git diff tag1 tag2

lub pokaż log między nimi:

$ git log tag1..tag2

czasami wygodne może być wyświetlenie tylko listy plików, które zostały zmienione:

$ git diff tag1 tag2 --stat

a następnie spójrz na różnice w niektórych plikach:

$ git diff tag1 tag2 -- some/file/name

Tag jest tylko odniesieniem do ostatniego zatwierdzenia „na tym tagu”, więc różnicujesz między zatwierdzeniami.

Również dobre odniesienie: http://learn.github.com/p/diff.html

gauteh
źródło
2
@kaiser lol! btw, chciałbym dodać tę wskazówkę, aby porównać całe katalogi od wewnątrz git guiw „tools / add” like git difftool -d $REVISION! i połączyć tę odpowiedź za
wodnik Mocarstwu
Czy istnieje sposób, aby git logpolecenie wyświetlało tylko dodatkowe zatwierdzenia, a nie współdzielone zatwierdzenia?
CMCDragonkai
@CMCDragonkai, czyli to, co robi to polecenie, pokazuje dodatkowe zatwierdzenia na tag2 od tag1.
gauteh
2
Przydatne: po prostu git diff tag1podaje różnice między tag1 a katalogiem roboczym; git diff tag1 HEADróżnice między tag1 a ostatnim zatwierdzeniem.
ChrisV
4
Pamiętaj, aby zrobić git pull --tagsnajpierw.
Edburns
2

Aby uzyskać wizualną reprezentację obok siebie, używam git difftoolzopenDiff ustawioną domyślną przeglądarką.

Przykładowe użycie:

git difftool tags/<FIRST TAG> tags/<SECOND TAG>

Jeśli interesuje Cię tylko określony plik, możesz użyć:

git difftool tags/<FIRST TAG>:<FILE PATH> tags/<SECOND TAG>:<FILE PATH>

Na marginesie, tags/<TAG>s można zastąpić <BRANCH>es, jeśli jesteś zainteresowany diffgałęziami.

Tom Howard
źródło