Git pull'dan sonra kod değişikliklerini nasıl görebilirim?


91

A yaptıktan sonra herhangi bir kod değişikliğini incelemek istiyorum git pull. Şu anda sadece hangi dosyaların değiştiğini gösteriyor. Hangi kodun değiştiğini nasıl görebilirim?


Bakın bu .
unrealsoul007

Yanıtlar:


100
git log --name-status -2

Size son iki kayıt için değişen dosyaların adlarını gösterecektir.

git log -p -2

Size değişiklikleri kendileri gösterecek.

Çekmeden önce

git fetch
git log --name-status origin/master..

Dosyaların adlarıyla birlikte almak üzere olduğunuz taahhütleri size gösterecektir.


69

Çekmeden önce

@İblue'nun dediği gibi fetchve diffbirleştirmeden önce değişiklikleri inceleyebilirsiniz :

$ git fetch
$ git diff master...origin/master

Üçlü döneme dikkat edin; bu, paylaşılan ana ve menşe / ana makineye göre farklılık anlamına gelir ( xaşağıda işaretlenen taahhütler ):

SP---o---o [master]
  \
   x---x [origin/master]

Bir çekmeden hemen sonra

Bir çekmenin çıktısındaki ilk satır şuna benzer:

$ git pull
Updating 37b431a..b2615b4
...

Daha sonra şunları yapabilirsiniz:

$ git diff 37b431a..b2615b4

Veya başka bir komut:

$ git log --name-status 37b431a..b2615b4

Daha sonra

Çekeliğin üstünden biraz zaman geçtiyse ve son çekimde hangi değişikliklerin getirildiğini bilmek istiyorsanız, şuna bakabilirsiniz:

$ git reflog | grep -A1 pull | head -2

bu, çekmeden sonra hash'i ve çekmeden önce hash'i gösterecektir:

b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master

Daha sonra aynı şeyi bu iki hash ile yapabilirsiniz:

git diff 37b431a..b2615b4

3
Bu, o sırada kaç kaydetme çekildiğini hatırlamadığınızda, son çekme sırasında hangi dosyaların değiştiğini kontrol etmenizi sağlayan tek cevaptır.
kremuwa

24

Çünkü git pullsadece bir kısayoldur git fetchve dalları başlangıçtan almak için git mergekoşabilir git fetchve birleştirmeden önce farklılıkları gösterebilirsiniz. Bunun gibi:

git fetch                      # Load changes from remote server
git diff master origin/master  # Show differences
git merge origin/master        # Merge remote changes with local changes

Master'dan farklı bir dalda çalıştırırsanız, elbette yukarıdaki komutlarda dal adlarını değiştirmelisiniz.


1
`` `` git fark - yalnızca ad ana kaynak / ana [yol] ``
jiacheo

10

Alınan içerikleri hemen önceki işlemin kaynakları ile karşılaştırabilirsiniz:

git diff branch_name@{1}

Örneğin:

git diff master@{1}

Kaynakların n taahhütleri ile karşılaştırmak için,

git diff branch_name@{n}

3
Bu iyi bir cevap, ancak açıklama yanlış: "Geride kalan n taahhütleri ile karşılaştırmak için" . @{n}Sözdizimi aslında anlamı nthönceki pozisyonunu dalı / başın. Eğer bir çekme yaptığını son kez bu yana Örneğin, 10 kaydedilmesini olmuştur master@{1}öncesinde bakın istiyorsunuz pozisyon arasında master10, kaydedilmesini önce. Bu nedenle @{n}kullanımı, çekmeden sonra değişiklikleri kontrol etmek için kullanışlıdır.
wisbucky

Bu aradığım cevap! Açıklama için teşekkürler @wisbucky
tamerlaha

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.