Saya ingin memeriksa setiap perubahan kode setelah melakukan a git pull. Saat ini hanya menunjukkan kepada saya file mana yang berubah. Bagaimana saya bisa melihat kode apa yang berubah?
Jawaban:
git log --name-status -2
Akan menunjukkan nama file yang diubah untuk dua komit terakhir.
git log -p -2
Akan menunjukkan kepada Anda perubahan itu sendiri.
Sebelum Anda menarik,
git fetch
git log --name-status origin/master..
Akan menunjukkan kepada Anda komitmen apa yang akan Anda ambil, bersama dengan nama file.
Anda dapat meninjau perubahan seperti yang dikatakan @iblue dengan fetchdan diffsebelum menggabungkan:
$ git fetch
$ git diff master...origin/master
Perhatikan periode tiga, yang berarti diff terhadap induk bersama dan asal / master (komit ditandai di xbawah):
SP---o---o [master]
\
x---x [origin/master]
Baris pertama dalam keluaran tarikan terlihat seperti ini:
$ git pull
Updating 37b431a..b2615b4
...
Anda kemudian dapat melakukan:
$ git diff 37b431a..b2615b4
Atau perintah lain apa pun:
$ git log --name-status 37b431a..b2615b4
Jika sudah lama sejak Anda tidak menarik, dan Anda ingin tahu perubahan apa yang dibawa oleh tarikan terakhir, Anda dapat mencarinya dengan:
$ git reflog | grep -A1 pull | head -2
yang akan menampilkan hash setelah tarikan diikuti dengan hash sebelum tarikan:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
Anda kemudian dapat melakukan hal yang sama dengan dua hash ini:
git diff 37b431a..b2615b4
Karena git pullini hanya pintasan untuk git fetchdan git merge, Anda dapat menjalankan git fetchuntuk mengambil cabang dari asalnya dan kemudian menunjukkan perbedaannya sebelum menggabungkan. Seperti ini:
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
Jika Anda menjalankan di cabang yang berbeda dari master , Anda tentu saja harus mengubah nama cabang pada perintah di atas.
Anda dapat membandingkan konten yang ditarik dengan sumber dari langsung sebelumnya oleh,
git diff branch_name@{1}
misalnya:
git diff master@{1}
Untuk membandingkan dengan sumber n komit di belakang,
git diff branch_name@{n}
@{n}sintaks sebenarnya berarti nthsebelumnya posisi cabang / kepala. Misalnya, jika sudah ada 10 komit sejak terakhir kali Anda melakukan tarik, master@{1}akan mengacu sebelum posisi dari master, yang merupakan 10 komit sebelumnya. Inilah sebabnya mengapa penggunaan @{n}berguna untuk memeriksa perubahan setelah penarikan.
Anda dapat memeriksa apa yang mendapat perubahan sambil mendorong dan menarik dengan ini ...
git log --stat