Como ver as mudanças no código após o git pull?

87

Eu gostaria de inspecionar todas as alterações de código depois de fazer a git pull. Atualmente está apenas me mostrando quais arquivos mudam. Como posso ver o código alterado?

uwe
fonte
Consulte isso .
unrealsoul007

Respostas:

98
git log --name-status -2

Irá mostrar os nomes dos arquivos que mudaram nos últimos dois commits.

git log -p -2

Mostrará as próprias mudanças.

Antes de puxar,

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

Irá mostrar quais commits você está prestes a recuperar, junto com os nomes dos arquivos.

Wayne Conrad
fonte
68

Antes de puxar

Você pode revisar as alterações como @iblue diz com um fetche diffantes de mesclar:

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

Observe o período triplo, que significa diferença em relação ao pai compartilhado e origem / mestre (confirmações marcadas xabaixo):

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

Logo depois de um puxão

A primeira linha na saída de um pull é assim:

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

Você pode simplesmente fazer:

$ git diff 37b431a..b2615b4

Ou qualquer outro comando:

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

Mais tarde

Se já faz um tempo que você puxou e deseja saber quais alterações foram feitas pela última puxada, você pode pesquisar com:

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

que mostrará o hash após o pull seguido pelo hash antes do pull:

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

Você pode então fazer a mesma coisa com estes dois hashes:

git diff 37b431a..b2615b4
quorniano
fonte
3
Esta é a única resposta que permite que você verifique quais arquivos foram alterados durante o último pull quando você não lembra quantos commits foram puxados naquele momento.
Kremuwa
22

Porque git pullé apenas um atalho para git fetche git merge, você pode executar git fetchpara buscar os ramos da origem e então mostrar as diferenças antes de mesclar. Como isso:

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

Se você executar em um branch diferente do master , você deve, é claro, alterar os nomes dos branch nos comandos acima.

iblue
fonte
1
`` `git diff - origem master apenas nome / master [caminho]` ``
jiacheo
10

Você pode comparar o conteúdo extraído com as fontes do commit imediatamente anterior,

git diff branch_name@{1}

por exemplo:

git diff master@{1}

Para comparar com as fontes n confirmadas,

git diff branch_name@{n}
Kasun
fonte
2
Esta é uma boa resposta, mas a explicação está incorreta: "Para comparar com as fontes n commits behind" . A @{n}sintaxe realmente significa a posiçãonth anterior do branch / head. Por exemplo, se houver 10 commits desde a última vez que você fez um pull, se referirá à posição anterior de , que é 10 commits anteriores. É por isso que usar é útil para verificar as alterações após um pull. master@{1}master@{n}
wisbucky
Esta é a resposta que procuro! Obrigado pela explicação @wisbucky
tamerlaha
5

Você pode verificar o que muda enquanto empurra e puxa por isso ...

git log --stat
Sandip Karanjekar
fonte