Bagaimana cara membandingkan dua tag dengan git?

435

Saya ingin melakukan perbedaan antara dua tag dan melakukan perubahan di antara kedua tag tersebut. Bisakah Anda memberi tahu saya perintahnya?

bsd
sumber

Jawaban:

744
$ git diff tag1 tag2

atau tampilkan log di antara mereka:

$ git log tag1..tag2

kadang-kadang mungkin nyaman untuk melihat hanya daftar file yang diubah:

$ git diff tag1 tag2 --stat

dan kemudian lihat perbedaan untuk beberapa file tertentu:

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

Tag hanyalah referensi ke komit terbaru 'pada tag itu', sehingga Anda melakukan perbedaan pada komit di antara mereka.

Juga, referensi yang bagus: http://learn.github.com/p/diff.html

gauteh
sumber
2
@kaiser lol! btw, saya ingin menambahkan tip ini untuk membandingkan seluruh direktori dari dalam git guidi "tools / add" like git difftool -d $REVISION! dan untuk menghubungkan jawaban ini juga
Aquarius Power
Apakah ada cara untuk membuat git logperintah hanya menampilkan komit tambahan, bukan komit bersama?
CMCDragonkai
@ CMCDragonkai itulah yang dilakukan perintah ini, ini menunjukkan komit tambahan pada tag2 sejak tag1.
gauteh
2
Juga bermanfaat: cukup git diff tag1memberikan perbedaan antara tag1 dan direktori kerja; git diff tag1 HEADperbedaan antara tag1 dan komit terbaru.
ChrisV
4
Pastikan lakukan git pull --tagsterlebih dahulu.
edburns
2

Untuk sisi-by-side representasi visual, saya menggunakan git difftooldengan openDiffset untuk penampil default.

Contoh penggunaan:

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

Jika Anda hanya tertarik pada file tertentu, Anda dapat menggunakan:

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

Sebagai catatan tambahan, huruf tags/<TAG>s dapat diganti dengan <BRANCH>es jika Anda tertarik pada diffcabang.

Tom Howard
sumber