Como listar arquivos modificados por git pull / git merge?

4

em um dos nossos projetos, o MysQL-Dumps é sincronizado com o git. Um arquivo para cada tabela no banco de dados. Depois de puxar / mesclar os dumps são importados para o banco de dados local com um gancho. O problema é agora, eu preciso encontrar todos os despejos de tabela que foram alterados com o pull para importar apenas estes. Como posso obter o gancho pós-mesclagem, quais arquivos foram alterados? É possível que não apenas um commit antes que seja mesclado, geralmente, há mais commits.

Como posso obter uma lista de arquivos modificados?

    
por WolleTD 08.01.2014 / 15:18

3 respostas

3

git diff --name-only SHA1 SHA2

Use git log para obter os IDs de commit do git. Use apenas git diff SHAx se você quiser apenas comparar com a última palavra que você puxou.

Antes de você git pull do git log ou git status obter o SHAx. Você pode fazer git fetch em vez de puxar e fazer log e diff antes de se fundir.

    
por 08.01.2014 / 15:33
2

Eu usei git reflog logo depois que eu fiz git pull para obter algo como:

SHA1 HEAD@{0}: pull: Fast-forward
SHA2 HEAD@{1}: checkout: moving from somewhere to anotherplace

o SHA logo após a leitura "puxar: Avanço rápido" é aquele em que você estava antes da puxada.

Depois disso, usei o git diff --name-only SHA2 da outra resposta, que fornecerá uma lista de arquivos que foram alterados daquele commit para seu estado atual.

Eu não tenho 100% de certeza de como isso funciona para puxar muitas alterações e mesclagens, mas, para um simples avanço rápido, funcionou muito bem.

    
por 11.06.2015 / 19:23
2

A maneira mais fácil que encontrei é

git diff --name-only HEAD@{0} HEAD@{1}

desde HEAD@{n} significa o n-ésimo valor anterior de HEAD

    
por 02.05.2017 / 12:34

Tags