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.