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.