DEV Community

ダニエリ for WoMakersCode

Posted on • Updated on

[Tutorial Git] git diff: Verificando modificações no repositório

Para saber o que foi modificado em um arquivo rastreado do repositório, mas que ainda não foi adicionado um commit sobre, usamos o comando:

$ git diff
Enter fullscreen mode Exit fullscreen mode
  • $ indica que você deve usar o usuário comum para fazer essa operação.

Exemplo:

Temos o arquivo inicial abaixo

arquivo html sem as modificações

Em seguida, fizemos as seguintes modificações

arquivo html com as modificações

Ao digitar o comando diff, temos:

usando o comando git diff

Assim podemos ver (escrito em verde) quais partes do arquivo foram adicionadas.

partes em verde adicionadas no arquivo

Em vermelho, as partes que foram retiradas ou modificadas.

partes em verde adicionadas no arquivo

E o que está escrito com a cor branca aquilo que foi mantido (não houve modificação).

partes em verde adicionadas no arquivo

O comando

$ git diff HEAD
Enter fullscreen mode Exit fullscreen mode

É semelhante ao que usamos anteriormente.

No cabeçalho, temos que 11 linhas foram subtraídas ou modificadas a partir da linha 1 e também 11 linhas foram adicionadas a partir da primeira, conforme podemos ver em destaque na imagem abaixo.

linhas modificadas e adicionadas

Temos também os marcadores de modificação, que o git chama de a e b. Sendo a o arquivo como ele estava anteriormente e b o arquivo atual.

marcadores de comparação

Ao adicionar o arquivo com o comando git add se usarmos o git diff novamente, não será retornado nada.

sem retorno após ir para o index

Para verificar as mudanças desse arquivo (que agora está no index) usamos o comando:

$ git diff --staged
Enter fullscreen mode Exit fullscreen mode

diff staged

É importante notar que o comando git diff retorna as modificações de todos os arquivos. Caso queira que seja mostrado de apenas um arquivo em específico, digite:

$ git diff <nome_do_arquivo>
Enter fullscreen mode Exit fullscreen mode
  • digite o nome do arquivo sem os sinais < >.

Histórico das modificações

O comando

$ git log -p
Enter fullscreen mode Exit fullscreen mode

faz a junção dos comandos log e diff; mostrando todas as alterações que foram feitas no(s) arquivo(s) rastreada(s) pelo Git. Pressione ENTER para descer a página e ao chegar ao fim, pressione q para sair.

histórico das modificações

Com o comando

$ git log -p -<n>
Enter fullscreen mode Exit fullscreen mode

É possível ver um determinado número de históricos das modificações. Sendo o <n> o número de histórico de modificações que gostaria de ver, a partir do último (caso não queira ver tudo).

histórico parcial das modificações

Discussion (5)

Collapse
miguelelias profile image
Miguel Elias

Olá comunidade, estou precisando de um ajuda. sobre configuração do GIT

executo o comando git diff nome do arquivo ele não retorna nada.

executo somente o comando git diff e também não retorna nada.

Collapse
danielle8farias profile image
ダニエリ Author

Olá!
Tenho algumas perguntas para tentar entender o que está acontecendo com você e, assim, tentar te ajudar:
O git está rastreando a pasta/diretório?
Você está com o terminal aberto no local onde o git está fazendo o versionamento?
Já testou o comando git diff --staged?

Collapse
miguelelias profile image
Miguel Elias

Olá
O git está rastreando a pasta/diretório? sim
Você está com o terminal aberto no local onde o git está fazendo o versionamento? sim
Já testou o comando git diff --staged? sim

tentei todos os comandos DIFF e não retorna nada volta para a linha de comando
acredito que algum arquivo foi modificado ou corrompido do GIT.

Thread Thread
danielle8farias profile image
ダニエリ Author • Edited on

Confesso que nunca estive diante de um problema assim. 🤔
De qualquer maneira eu achei um post que talvez possa te ajudar com isso (em inglês): lafkblogs.wordpress.com/2015/12/08...
Nesse link que eu coloquei a pessoa dá algumas pistas do que pode ocasionar o problema e como tentar corrigir.
Espero que você consiga solucionar a situação.

Thread Thread
miguelelias profile image
Miguel Elias

Obrigado irmão.. estou verificando nos arquivos do bin e usr