Visualizar Commits em um Intervalo de Datas Específico

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Git é um poderoso sistema de controle de versão que permite aos desenvolvedores acompanhar as alterações feitas em seu código-base. Uma das funcionalidades mais úteis do Git é a capacidade de visualizar commits em um intervalo de datas específico. Isso pode ser útil ao tentar rastrear um bug ou entender o histórico de um projeto.

Clonando o Repositório Git

Para começar a explorar as capacidades de filtragem por intervalo de datas do Git, primeiro precisamos de um repositório Git para trabalhar. Usaremos o repositório git-playground fornecido pelo LabEx.

Vamos começar clonando o repositório:

  1. Abra seu terminal na VM do LabEx.
terminal
  1. Execute o seguinte comando para clonar o repositório:
git clone https://github.com/labex-labs/git-playground

Você deve ver uma saída semelhante a esta:

Cloning into 'git-playground'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
  1. Navegue até o diretório do repositório:
cd git-playground

Agora que temos o repositório em nossa máquina local, podemos começar a explorar o histórico de commits.

Explorando o Comando Básico git log

Agora que clonamos nosso repositório, vamos aprender como visualizar o histórico de commits usando o comando git log.

O comando git log exibe uma lista de todos os commits no repositório, começando pelo mais recente. Cada entrada de commit inclui:

  • Um hash de commit (identificador) único
  • Informações do autor
  • Data e hora do commit
  • Mensagem do commit

Vamos visualizar o histórico básico de commits:

git log

Você deve ver uma saída semelhante à seguinte:

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

Se a saída for longa, você pode navegar por ela usando:

  • Pressione Space para avançar
  • Pressione b para retroceder
  • Pressione q para sair da visualização do log

Observe que cada commit tem um identificador único (a longa string hexadecimal), as informações do autor, a data e hora do commit e uma mensagem descrevendo as alterações feitas.

Visualizando Commits em um Intervalo de Datas Específico

Agora, aprenderemos como filtrar commits com base em datas específicas. O Git fornece duas opções úteis para esse propósito:

  • --since ou --after: Mostra commits mais recentes que uma data específica
  • --until ou --before: Mostra commits mais antigos que uma data específica

Quando combinamos essas opções, podemos visualizar commits dentro de um intervalo de datas específico.

Vamos visualizar todos os commits que ocorreram entre 25 de abril de 2023 e 27 de abril de 2023:

git log --since='Apr 25 2023' --until='Apr 27 2023'

Este comando exibirá todos os commits que foram feitos entre 25 de abril e 27 de abril de 2023. A saída deve ser semelhante a esta:

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

O Git aceita muitos formatos de data, incluindo:

  • "YYYY-MM-DD" (por exemplo, 2023-04-25)
  • "Month DD YYYY" (por exemplo, Apr 25 2023)
  • "DD Month YYYY" (por exemplo, 25 Apr 2023)

Experimente outro formato de data para ver se há algum commit dentro de um intervalo diferente:

git log --since='2023-04-20' --until='2023-04-24'

Este comando pode não retornar nenhum resultado se não houveram commits durante esse período, o que é perfeitamente normal.

Usando Datas Relativas e Opções de Formatação

O Git também suporta datas relativas, o que pode ser muito conveniente para visualizar rapidamente a atividade recente.

Vamos visualizar todos os commits das últimas 12 semanas:

git log --since='12 weeks ago'

Dependendo de quando você estiver executando este comando, você pode ver todos os commits ou apenas alguns deles, se eles se enquadrarem nesse período de tempo.

Outros formatos de data relativa úteis incluem:

  • "X days ago" (há X dias)
  • "X months ago" (há X meses)
  • "yesterday" (ontem)
  • "last week" (semana passada)

Vamos tentar visualizar commits do último ano:

git log --since='1 year ago'

Este comando mostrará todos os commits feitos no último ano.

Opções de Formatação Adicionais

O git log fornece várias opções de formatação para personalizar a saída. Aqui estão algumas úteis:

  1. Para exibir um log mais conciso com cada commit em uma única linha:
git log --oneline --since='Apr 25 2023' --until='Apr 27 2023'

A saída será semelhante a:

d22f46b (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD) Added file2.txt
cf80005 Added file1.txt
b00b937 Initial commit
  1. Para ver os arquivos que foram alterados em cada commit:
git log --name-status --since='Apr 25 2023' --until='Apr 27 2023'

Este comando mostra o status dos arquivos que foram modificados em cada commit, o que pode ser útil para entender o que foi alterado.

Essas opções de formatação podem ser combinadas com filtros de data para criar consultas poderosas que ajudam você a entender o histórico de um projeto de forma mais eficaz.

Resumo

Neste laboratório, você aprendeu como visualizar commits em um intervalo de datas específico usando o Git. Você explorou:

  • Como clonar um repositório Git para sua máquina local
  • Como usar o comando git log básico para visualizar o histórico de commits
  • Como filtrar commits com base em intervalos de datas específicos usando as opções --since e --until
  • Como usar datas relativas como "12 weeks ago" (há 12 semanas) para uma filtragem mais flexível
  • Como personalizar a saída do git log com opções de formatação

Essas habilidades são essenciais para entender o histórico do projeto, rastrear bugs e revisar a linha do tempo de desenvolvimento de um código base. À medida que você continua trabalhando com o Git, essas técnicas de filtragem o ajudarão a navegar mesmo em repositórios grandes com facilidade.