Comparando Branches e Examinando Commits Específicos
Agora que podemos visualizar o histórico de commits de branches remotos, vamos aprender a comparar branches e examinar commits específicos com mais detalhes.
Comparando Branches
O Git fornece ferramentas poderosas para comparar diferentes branches. Como todos os branches em nosso repositório git-playground apontam para o mesmo commit, vamos primeiro entender como usar esses comandos e, em seguida, veremos exemplos práticos.
Para ver as diferenças entre seu branch atual e um branch remoto, use:
git diff origin/main
Como todos os branches são idênticos em nosso exemplo, isso não mostrará nenhuma diferença. No entanto, em projetos reais, isso mostraria o que mudou entre seu branch atual e o branch remoto.
Você também pode comparar dois branches remotos:
git diff origin/master origin/feature-branch
Novamente, como são idênticos, nenhuma diferença será mostrada.
Examinando Commits Específicos
Às vezes, você precisa examinar um commit específico em detalhes. Você pode fazer isso usando o comando git show seguido pelo hash do commit:
Primeiro, vamos obter os hashes dos commits:
git log --oneline origin/master
Agora examine um commit específico usando seu hash:
git show d22f46b
Este comando mostra os detalhes do commit juntamente com as alterações introduzidas nesse commit. Você verá a adição do file2.txt.
Vamos examinar o commit que adicionou o file1.txt:
git show cf80005
E o commit inicial:
git show b00b937
Visualizando o Conteúdo de Arquivos de um Branch Remoto
Para ver o conteúdo de um arquivo específico como ele existe em um branch remoto, use:
git show origin/master:README.md
Isso exibe o conteúdo do README.md como ele existe no branch master no repositório remoto.
Você também pode ver o conteúdo de outros arquivos:
git show origin/master:file1.txt
git show origin/master:file2.txt
Verificando Quem Modificou uma Linha Específica
Para ver quem fez alterações em um arquivo específico e quando, use o comando git blame:
git blame README.md
Isso exibe cada linha do arquivo juntamente com o hash do commit, autor e data da última alteração naquela linha.
Experimente com os outros arquivos:
git blame file1.txt
git blame file2.txt
Visualizando o Histórico de Arquivos
Para ver como um arquivo específico evoluiu ao longo do tempo:
git log -p origin/master -- README.md
Isso mostra todos os commits que modificaram o arquivo README.md no branch master remoto, juntamente com as alterações feitas em cada commit.
Esses comandos fornecem ferramentas valiosas para entender o histórico e a evolução do seu codebase, facilitando o rastreamento de alterações, a depuração de problemas e a colaboração com outros desenvolvedores.