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?


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.


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

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.


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}

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.