Preview ng leksyon

Lendo o histórico: log, diff, show e navegação pelo passado

O histórico do projeto não é apenas um registro, é uma documentação das decisões. Vamos aprender a ler o histórico de forma informativa: filtrar commits, ver exatamente o que mudou entre as versões e entender os hashes SHA-1 sem medo. Separadamente, vamos analisar como distinguir um 'bom histórico' de um 'histórico poluído' — isso afeta diretamente como você será percebido na equipe.

hash do commit git log git diff
Ano ang matututunan mo sa leksyong ito
  • Você será capaz de ler o histórico do repositório e encontrar rapidamente o commit necessário por autor, data ou palavra-chave.
  • Você entenderá como comparar versões de arquivos em diferentes níveis: diretório de trabalho, índice, commit.
  • Você aprenderá a escrever mensagens de commit seguindo os padrões reconhecidos da indústria (Conventional Commits).

Simula ng leksyon

Histórico de commits como um diário do projeto

  • Git log mostra o histórico como um diário invertido
  • Cada entrada é um instantâneo das alterações
  • Armazena quem, quando e o que foi alterado
  • Permite ver a evolução do código

Imagine que cada vez que você salva alterações no Git, você está fazendo uma anotação em um diário de desenvolvimento. O comando 'git log' mostra essas anotações em ordem cronológica inversa — das mais recentes para as mais antigas. Neste diário está armazenada toda a cronologia do projeto: quem, quando e quais exatamente foram as alterações feitas. Não é apenas uma lista de mudanças, mas uma história viva da evolução do seu código. A habilidade de ler e analisar este histórico é fundamental para trabalhar em equipe. Afinal, é através do histórico de commits que você vê como o projeto evoluiu, quais decisões foram tomadas e por quê. Vamos examinar com mais detalhes a estrutura de um commit individual.

Lendo uma entrada de commit: hash, autor, data

  • commit: identificador único de hash
  • Author: quem e quando fez as alterações
  • Date: timestamp do commit
  • Mensagem: o que exatamente foi alterado

Observe a saída do comando 'git log'. Cada entrada começa com uma longa sequência de caracteres — este é o hash do commit, seu identificador único. À direita dele, você vê o autor das alterações e a data em que foram feitas. Abaixo está a mensagem do commit, que o desenvolvedor escreveu ao salvar as alterações. Note o formato: primeiro vem o e-mail do autor entre colchetes angulares, depois o timestamp. Esses dados ajudam a entender o contexto das alterações e, se necessário, entrar em contato com o autor para esclarecimentos. Agora que analisamos a estrutura de um commit, vamos entender o que é um hash e por que ele é necessário.

#!/bin/bash
cd ~/projects/git-course/
git log -1 --pretty=format:'commit %H%nAuthor: %an <%ae>%nDate:   %ad%n%n    %s'

Hash do commit — sua chave para o histórico

  • Hash é a impressão digital do commit
  • Depende do conteúdo e metadados
  • Alterar um único caractere muda o hash
  • Permite referenciar com precisão qualquer versão

O hash do commit não é apenas uma sequência aleatória de caracteres, mas sim o resultado de uma função criptográfica que transforma o conteúdo do commit em uma string única. Se você alterar até mesmo um byte no commit, o hash mudará completamente. Isso garante a integridade do histórico de alterações. Conhecendo o hash, você pode acessar qualquer versão do código, como um marcador de livro. Por exemplo, o comando 'git checkout' com o hash específico o levará ao estado do projeto naquele commit. Isso é especialmente útil quando você precisa reverter alterações ou analisar quando um erro foi introduzido. Agora que entendemos a estrutura do histórico, vamos aprender a filtrá-lo — afinal, em projetos reais, podem existir milhares de commits.

Buong leksyon ay para sa subscription

26 pang slide sa buong bersyon.

Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.

Mag-sign in o magparehistro Mag-subscribe

Nilalaman ng leksyon

  1. Histórico de commits como um diário do projeto
  2. Lendo uma entrada de commit: hash, autor, data
  3. Hash do commit — sua chave para o histórico
  4. Como encontrar commits de um autor
  5. Filtrando por data do commit
  6. Busca por texto nos commits
  7. Combinando filtros
  8. O problema da leitura do histórico de commits
  9. Visualização compacta com --oneline
  10. Visualização de ramificações com --graph
  11. Visão completa com --all
  12. O que é git diff e para que serve
  13. Comparando alterações no diretório de trabalho
  14. O que está preparado para commit: git diff --staged
  15. Comparando quaisquer dois commits
  16. Como examinar detalhadamente um commit específico
  17. Prática: examinando as alterações em um commit
  18. Visualizando um arquivo específico em um commit
  19. Encontrando alterações recentes em um arquivo
  20. Analisando código de terceiros através do histórico
  21. Localizando a introdução ou remoção de uma função
  22. Por que as mensagens de commit são importantes
  23. Estrutura da mensagem de commit ideal
  24. Conventional Commits na Prática
  25. Refatorando Commits Ruins
  26. Por que commits 'fix' são um antipadrão
  27. Atomicidade das alterações: um commit — uma tarefa
  28. git add -p: ferramenta essencial para commits limpos
  29. Conclusão e exercício

Mga artikulo tungkol sa araling ito

Lahat ng leksyon ng kurso

  1. Introdução: Git do Zero ao Desenvolvedor Confiante
  2. Por que o Git é necessário — e por que ele é exigido no mercado de trabalho
  3. Instalação e Configuração: Preparando o Git para o Primeiro Uso
  4. Primeiro Repositório: init, add, commit e a Mágica do Índice
  5. Lendo o histórico: log, diff, show e navegação pelo passado
  6. Branches: A Realidade Paralela do Seu Código
  7. Desfazendo Erros: restore, reset, revert — O Caminho Correto e os Perigos
  8. GitHub e repositórios remotos: seu código na nuvem
  9. Trabalho em Equipe: Forks, Branches de Funcionalidades e Pull Requests
  10. Conflitos de Merge: Sem Pânico - Entenda e Resolva
  11. Processos de Git em equipes reais: qual fluxo de trabalho escolher
  12. Ferramentas Avançadas: rebase, stash, cherry-pick e tags
  13. Projeto Final: Simulando o Desenvolvimento em Equipe no Mundo Real