Meu editor está mudando as terminações de linha de meus arquivos de origem. Quando eu façogit diff
, vejo a mesma linha duas vezes - uma com -
e outra com +
- sem nenhuma diferença visível.
Como faço git diff
para me mostrar o que essa mudança realmente foi?
git
line-endings
git-diff
Stonky
fonte
fonte
git config diff.wsErrorHighlight all
Respostas:
Primeiro, certifique-se de que está usando a saída colorida (por exemplo, com
git diff --color
) e de que habilitou o realce de espaço em branco com (por exemplo)Isso pode não funcionar em todos os casos, pois
git
não parece destacar o espaço em branco à direita para as linhas removidas . Para ver os espaços em branco que você excluiu, basta usarpara colocar o espaço em branco no lado 'adicionado' da comparação, onde é realçado.
Para obter mais detalhes, consulte as respostas desta pergunta do SO .
fonte
000000f0 2d 2d 7d 0a 2b 2b 7d 0a |--}.++}.|
O 7d é a chave '}'.Você pode ver a diferença de fim de linha com o seguinte comando.
Então "^ M" é impresso para finalização CRLF (DOS), nada para finalização LF (Unix).
Aparentemente, git diff está fazendo a coisa certa, imprimindo caracteres CR e LF para finalização CRLF. Mas porque CR é consumido pelo console, não podemos vê-lo. Usando cat -v, podemos torná-lo visível.
fonte
git diff > somediff && vi somediff
, o vim mostra CRLF como ^ M também. mascat -v
é bacana.cat
que eu não conhecia. :-)Uma maneira de ver as alterações dos espaços em branco é fazer uma "diferença de palavra" caractere por caractere com
Isso destaca todas as alterações de espaço em branco em todas as linhas . O espaço em branco removido é inserido
[-
e-]
incluídos e os espaços em branco adicionados em{+
e+}
.Alternativamente, conforme sugerido por Alex
destaca todas as alterações de espaço em branco no final das linhas .
fonte
destaca diferenças de espaço em branco nas linhas alteradas.
fonte
Uma ferramenta de comparação gráfica mostrará melhor a mudança - tente
git difftool
.Use o meld e defina as preferências para mostrar os espaços em branco. (Editar -> Preferências -> Mostrar espaços em branco.)
Outras ferramentas gráficas provavelmente têm opções semelhantes - a resposta + comentário de @ Cotton informa como fazer isso com o vimdiff.
fonte
git difftool --tool=meld doesn't
até mesmo lançar o meld. Não sei se é porque um rebase está em andamento ou não.