Em relação à formatação do código, sou meio que purista :). Costumo remover espaços em branco desnecessários (linhas com apenas ws, ws no final das linhas, etc.). Eu até configurei o vim para mostrar esse tipo de linhas coloridas em vermelho.
Meu problema é que, usando o git-diff, muitas vezes vejo algo assim:
- else{
+ else{
Mesmo que eu tenha a cor git-diff, não vejo diferença (nessa situação em particular, removi 1 ws no final da linha). Existe alguma maneira de dizer ao git-diff para mostrar que foi colorido de vermelho? (por exemplo, aqueles combinados com / \ s + $ / regexp).
git
colors
diff
whitespace
radarek
fonte
fonte
Respostas:
Pode ser necessário definir a configuração color.diff.whitespace, por exemplo, com:
(Suponho que você já tenha definido
color.diff
oucolor.ui
definido,auto
pois diz que vê manchas coloridas degit diff
qualquer maneira.)Se você deseja ajustar com precisão o tipo de erros de espaço em branco destacados em vermelho, é possível alterar
core.whitespace
, masblank-at-eol
está ativado por padrão, para que você provavelmente não precise alterar isso no exemplo mencionado.Uma possível fonte de confusão é que, na saída de
git diff
, os erros de espaço em branco são destacados apenas nas linhas que são introduzidas, não nas que são removidas. ( Atualização: como Paul Whittaker aponta em sua resposta , que você deve votar novamente :), você pode vê-las revertendo o sentido da diferençagit diff -R
.)Você pode encontrar mais documentação sobre essas opções de configuração na página de manual do git config
Se você não quiser usar o
-R
kludge, poderá usar a opção WhiteSpace Error Highlight na página do manual diff .git diff --ws-error-highlight=new,old <file>
ou
git diff --ws-error-highlight=all <file>
Eu não sei de uma maneira de permanentemente ativar isso e armazenar isso na configuração além de usar um alias:
git config alias.df 'diff --ws-error-highlight=all'
Agora você pode usar:
git df <file>
Para ver as mudanças em vermelho.
Observe que, com o Git 2.11 (quarto trimestre de 2016) , esse alias pode ser substituído por:
Veja doc sobre
git diff
e sobregit config
.fonte
git diff -R
git config diff.wsErrorHighlight all
. Usegit config --global [...]
para tornar as alterações globais (isto é, afetando todos os repositórios).Use
git diff -R
para transformar linhas removidas em linhas adicionadas. O espaço em branco à direita será destacado.(Isso pressupõe que você já tenha a iluminação de espaços em branco ativada, de acordo com as configurações de cores da resposta de Mark. O crédito para esse método está na publicação de Junio em http://git.661346.n2.nabble.com/Highlighting-whitespace-on-removal- com-git-diff-td5653205.html .)
Por exemplo, ao converter um arquivo de finais de linha do DOS para Unix,
git diff -R
mostra-me claramente os^M
caracteres (des) que aparecem no final das linhas. Sem-R
(e também sem-w
etc.) mostra que o arquivo inteiro foi alterado, mas não mostra como.fonte
git diff | cat -A | less -S
se estiver desesperado, mas, além dos retornos de carro,cat
ele também exibirá qualquer cor destacando códigos de escape literalmente.cat -A
não é portátil. No gato BSD, não existe essa opção. Por favor, use em seucat -vet
lugar.Use
git diff --color | less -R
. Isso-R
torna os códigos de controle de cores compatíveis com humanos.Em seguida, você pode usar
less
a pesquisa de expressões regulares, por exemplofonte
vim
, a propósito.less -R
apenas facilitou als --color
passagemless
.Minha versão do
git diff
já parece fazer isso - eu tenho o git 1.7.4.1 e configureicolor.ui = auto
.fonte