git diff entre duas ramificações quando o caminho mudou

4

Eu preciso entender as alterações em um arquivo entre duas versões representadas pelo meu mestre atual e ramificação new_branch. Normalmente, eu executaria o seguinte se path / name forem iguais em ambos os branches.

git diff new_branch - caminho / arquivo

O que eu faço quando o caminho / arquivo é diferente entre os dois ramos?

Eu posso fazer fallback e criar outro repositório clonado e fazer check-out de new_branch. Então faça o sDiff do unix. Eu estava apenas imaginando se os autores do git diff anteciparam este cenário e construíram algo para lidar com isso.

- Obrigado - Mike Jr.

    
por Mike Jr 03.08.2010 / 22:19

1 resposta

4

O Git não possui uma noção real dos arquivos movidos / renomeados / copiados, no entanto, ele tem heurística para tentar detectar esses casos e depois exibi-los de uma forma agradável.

Dito isso, você pode instruir git-diff a usar essas heurísticas para detectar renomias passando o sinalizador -M . Com isso você pode tentar

git diff -M new_branch -- new-path/file old-path/file

e veja se funciona no seu caso específico. Além disso, git diff -M --stat new_branch lhe dará uma visão geral das alterações e também mostrará o que renomeia a heurística de Git.

    
por 04.08.2010 / 01:37

Tags