[Tutorial Git] git diff: Verificando modificações no repositório
Tags: git, diff, github, braziliandevs
Published: 2020-03-29 20:02:33

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
```

- **$** 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](https://dev-to-uploads.s3.amazonaws.com/i/apgjrnrv91wprzmqm0mw.png)

Em seguida, fizemos as seguintes modificações

![arquivo html com as modificações](https://dev-to-uploads.s3.amazonaws.com/i/8uxk64kembhcpbtfclbi.png)

Ao digitar o comando **diff**, temos:

![usando o comando git diff](https://dev-to-uploads.s3.amazonaws.com/i/a05kx7l5kekcy8yy4x47.png)

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

![partes em verde adicionadas no arquivo](https://dev-to-uploads.s3.amazonaws.com/i/ri1ouc1cjilbqgtg2y8h.png)

Em **vermelho**, as partes que foram **retiradas ou modificadas**. 

![partes em verde adicionadas no arquivo](https://dev-to-uploads.s3.amazonaws.com/i/0ap92fzhvflvuxzh4epw.png)

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

![partes em verde adicionadas no arquivo](https://dev-to-uploads.s3.amazonaws.com/i/1zijflmsms2xstryxko8.png)

O comando

```
$ git diff HEAD
```

É 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](https://dev-to-uploads.s3.amazonaws.com/i/tb90nse08iv2d86ugzku.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/dy4f27nphqq9xqioo6pl.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/8vivuziq8pn97mpc8q04.png)

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

```
$ git diff --staged
```

![diff staged](https://dev-to-uploads.s3.amazonaws.com/i/vsa8tt2yf7es7qebybqm.png)

É 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>
```

- digite o nome do arquivo sem os sinais **< >**.

## Histórico das modificações

O comando

```
$ git log -p
```

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](https://dev-to-uploads.s3.amazonaws.com/i/3sz7be5bvfu9pbnhfut8.gif)

Com o comando

```
$ git log -p -<n>
```

É 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](https://dev-to-uploads.s3.amazonaws.com/i/p3xhke85jyq597v17owy.gif)