Em Busca do Código Alterado: Git Diff
- #Git
O git diff é, basicamente, um comando que mostra as diferenças entre dois pontos do seu repositório. Ou seja: entre duas versões dos seus arquivos.
Isso é muito importante para acompanhar as mudanças que você ou que outras pessoas envolvidas no desenvolvimento fizeram no código, e também para resolver conflitos que possam surgir quando se tenta juntar (mergear, para os mais íntimos) duas versões diferentes.
💡Vamos ver como funciona na prática!
1) Você precisa ter um repositório git no seu computador. Se você não sabe como criar um, é bem simples e bem fácil encontrar milhares desse tipo conteúdo na internet - inclusive aqui na DIO você encontra uma gama de cursos voltados a essa tecnologia, com direito a certificado de conclusão. 2) Depois, claro, você precisa ter alguns arquivos no seu repositório, com algum conteúdo. Por exemplo, vamos supor que você tenha um arquivo chamado oi_amiguinhos.py, com o seguinte código (em Python, para quem não conhece - ou lembra - da extensão:
def oi_amigos():
'''Uma função que imprime uma mensagem de saudação'''
print("Oi, abiguinhos!")
Com o arquivo já na área de stage do seu git (git add .), vamos fazer algumas alterações. Por exemplo, percebemos que, em vez de "amiguinhos", escrevemos a palavra "abiguinhos". E como bons devs que somos, formados na DIO, vamos deixar um comentário mais animado informando o que esse emaranhado complexo de instruções faz.
O código ficaria assim:
def oi_amigos():
'''Uma função que imprime uma mensagem de saudação bonitinha'''
print("Oi, amiguinhos!")
Antes de salvar o arquivo, vamos usar o comando git diff para ver as diferenças entre a versão atual e a versão anterior do arquivo. Para isso, basta digitar no terminal:
git diff oi_amiguinhos.py
O resultado será algo assim:
💡O que isso significa? Vamos analisar cada linha:
- A primeira linha mostra os nomes dos arquivos que estão sendo comparados: a/oi_amiguinhos.py e b/oi_amiguinhos.py. O "a" significa a versão anterior (antiga) e o "b" significa a versão atual (nova).
- A segunda linha mostra os índices dos arquivos, que são códigos que identificam cada versão. Não se preocupe muito com isso agora, o importante é saber que eles são diferentes, indicando que os arquivos mudaram. E o bloco final da linha mostra os modos dos arquivos, que são números que indicam as permissões de leitura, escrita e execução dos arquivos. Neste caso, mostra um único conjunto de números (100644), indicando que as permissões não mudaram e é relativa a ambas as versões.
- A terceira linha mostra que a versão "a" sofreu perdeu caracteres com relação a "b".
- A quarta linha mostra justamente o oposto: um acréscimo em "b" com relação a "a".
- A quinta linha mostra um símbolo "@@" seguido de dois números separados por uma vírgula: -1,3 +1,3. Isso significa que estamos olhando para a linha 1 do arquivo antigo e do arquivo novo, e que há 3 linhas de contexto em cada um. O contexto são as linhas que não mudaram entre as versões, e que servem para nos situar no código.
- As linhas seguintes mostram o conteúdo das linhas que mudaram ou foram adicionadas ou removidas. As linhas que começam com um sinal de menos (-) são as linhas que foram removidas da versão antiga. As linhas que começam com um sinal de mais (+) são as linhas que foram adicionadas na versão nova. As linhas que não têm nenhum sinal são as linhas de contexto.
Neste caso, podemos ver as linhas que sofreram alteração foram as 2 e 3 do arquivo, que continham o comentário antigo e a saudação 'Oi, abiguinhos!". Em contrapartida, as mesmas linhas foram as que receberam alterações, e estão marcadas em verde. As outras linhas são iguais nas duas versões.
O git diff tem muitas outras opções e funcionalidades que você pode explorar. Por exemplo, você pode usar o git diff para ver as diferenças entre dois commits: dois pontos do histórico do seu repositório. Você também usá-lo para ver as diferenças entre o seu repositório local e o repositório remoto, ou seja, o repositório que está hospedado em algum serviço online, como o GitHub. GitLab, BitBucket etc. Você também pode usar o git diff para ver as diferenças entre duas branches que podem ter códigos diferentes.
Explorar as possibilidades fica ao seu critério 🏆
📍Link para a documentação oficial: https://git-scm.com/docs/git-diff
📍Aqui um artigo super maneiro do pessoal da Geeks For Geeks (em inglês): https://www.geeksforgeeks.org/git-diff/
📍Cursos de Git para elevar o seu nível técnico: https://web.dio.me/play?search=GIT