desculpe se esta pergunta existe, eu surpreendentemente não consegui encontrar: /
Como posso executar um git diff
entre dois arquivos dentro do mesmo branch e mesmo commit?
ie git diff fileA.php fileB.php
(de preferência com o código de cores fácil de ler que git
oferece ... ou semelhante ao que o programa BeyondCompare faz!)
Respostas:
Você não precisa do git para isso, basta usar
diff fileA.php fileB.php
(ou vimdiff se quiser uma comparação lado a lado)fonte
vimdiff
para a vitória! Obrigado!git diff
diff, mas simplesmente fácil de ler. Além disso, o fato de ele ter aceitado minha resposta como o que estava procurando também indica que ela de fato responde.diff fileA fileB
não égit diff fileA fileB
Se você deseja usar
git diff
em dois arquivos arbitrários, você pode usargit diff --no-index <file_a> <file_b>
. Os dois arquivos não precisam ser rastreadosgit
para que isso funcione.fonte
--word-diff
destaca as mudanças por palavra, não apenas por linhadiff
tem--color
, o que pode ajudar (consulte unix.stackexchange.com/a/338960 ). Mas mesmo assim, se estiver usandodiff-so-fancy
, parece exigir o formato de saída específico degit diff
.diff -u
(consulte stackoverflow.com/a/4857407/10095231 ) não funciona.Se os arquivos que deseja comparar estão em sua cópia de trabalho, você pode usar simplesmente
diff
como indicado pelos outros, no entanto, se os arquivos estiverem em alguma revisão você pode especificar uma revisão para cada arquivoconforme observado aqui: https://stackoverflow.com/a/3343506/1815446
No seu caso (especificando a mesma revisão para ambos os arquivos):
fonte
HEAD~2
um SHA-1, um nome de filial, etc.git diff --name-only HEAD:dir1 HEAD:dir1_backup
funciona depois de umgit add
de ambos os diretórios.Para fazer o gnu diff regular se parecer mais com o git diff, eu recomendaria estes parâmetros:
(onde
-b
ignorar espaços,-u
diff unificado,-r
recursivo,-N
tratar arquivos ausentes como/dev/null
).Funciona muito bem, mas ainda não tem cores e a paginação automática no estilo git está praticamente ausente. Se você quiser consertar ambos (eu quero), instale
colordiff
e use-o assim:Isso fornece saída e interface muito próximas do real
git diff
.fonte
Se você quiser comparar dois arquivos locais no mesmo diretório, use diff.
fonte
Basta usar o diff regular.
fonte