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?
Respostas:
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.
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]
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
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
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.
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}
@{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}
Você pode verificar o que muda enquanto empurra e puxa por isso ...
git log --stat