Como Verificar se um Commit Git Está no Branch Atual

GitBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se um commit Git específico existe dentro do branch atual. Começaremos explorando o comando git log e suas várias opções para pesquisar e filtrar eficientemente o histórico de commits, incluindo o uso de --grep para pesquisar mensagens de commit e --author para filtrar por autor.

Em seguida, você aprenderá como usar o comando git branch --contains para identificar quais branches em seu repositório incluem um determinado commit. Este exercício prático irá equipá-lo com as habilidades para navegar e entender efetivamente o histórico de commits do seu projeto em diferentes branches.

Usar git log para Encontrar o Commit

Nesta etapa, aprenderemos como usar o comando git log para encontrar commits específicos no histórico do nosso projeto. À medida que seu projeto cresce e você faz mais commits, a saída de git log pode se tornar bastante longa. Git fornece opções poderosas para filtrar e pesquisar no log.

Primeiro, vamos fazer mais alguns commits para termos um histórico com o qual trabalhar. Certifique-se de estar no diretório ~/project/my-time-machine.

cd ~/project/my-time-machine
echo "Adding a second message" >> message.txt
git add message.txt
git commit -m "Add a second message"
echo "Adding a third message" >> message.txt
git add message.txt
git commit -m "Add a third message"

Agora, vamos visualizar o log completo novamente:

git log

Você verá três commits listados, com o mais recente no topo.

Às vezes, você pode estar procurando por um commit que contenha uma palavra específica em sua mensagem. Você pode usar a opção -grep para isso. Vamos encontrar o commit com "second message":

git log --grep "second message"

Este comando mostrará apenas o commit cuja mensagem contém a frase "second message".

Outra opção útil é -author para encontrar commits por um autor específico. Como configuramos nosso nome de autor na configuração, vamos tentar encontrar commits por "Jane Doe":

git log --author "Jane Doe"

Isso mostrará todos os commits feitos por "Jane Doe".

Finalmente, você pode limitar o número de commits exibidos usando a opção -n. Por exemplo, para ver apenas os dois últimos commits:

git log -n 2

Usar essas opções com git log ajuda você a navegar no histórico do seu projeto de forma eficiente, especialmente em projetos maiores com muitos commits.

Executar git branch --contains para o Commit

Nesta etapa, exploraremos como usar o comando git branch --contains. Este comando é útil para descobrir quais branches contêm um commit específico. Isso é particularmente útil quando você tem múltiplos branches e precisa rastrear onde uma determinada alteração foi incluída.

Primeiro, vamos obter o hash do commit de um de nossos commits anteriores. Podemos usar git log --oneline para ver uma visualização condensada do log e copiar facilmente um hash de commit. Certifique-se de estar no diretório ~/project/my-time-machine.

cd ~/project/my-time-machine
git log --oneline

Você verá uma saída semelhante a esta (seus hashes de commit serão diferentes):

abcdefg (HEAD -> master) Add a third message
hijklmn Add a second message
opqrstu Send a message to the future

Copie o hash do commit do primeiro commit que você fez ("Send a message to the future"). No exemplo acima, é opqrstu.

Agora, vamos usar git branch --contains com este hash de commit. Substitua [commit_hash] pelo hash real que você copiou:

git branch --contains [commit_hash]

Por exemplo, usando o hash da saída de exemplo:

git branch --contains opqrstu

A saída deve mostrar * master. O asterisco * indica o branch atualmente verificado (checked-out). Isso nos diz que o commit opqrstu está presente no branch master.

No momento, temos apenas um branch (master), então a saída é simples. Na próxima etapa, criaremos outro branch e veremos como a saída de git branch --contains muda.

Entender quais branches contêm um commit específico é crucial para gerenciar o histórico do seu projeto e coordenar o trabalho em diferentes linhas de desenvolvimento.

Testar com Outras Branches

Nesta etapa, criaremos um novo branch e faremos um commit nele para ver como git branch --contains se comporta quando um commit está apenas em um branch. Isso ajudará a solidificar sua compreensão de como o Git rastreia commits em diferentes linhas de desenvolvimento.

Primeiro, vamos criar um novo branch chamado feature-branch. Certifique-se de estar no diretório ~/project/my-time-machine.

cd ~/project/my-time-machine
git branch feature-branch

Agora, vamos mudar para nosso novo branch:

git checkout feature-branch

Você deve ver uma saída indicando que você mudou para o novo branch:

Switched to branch 'feature-branch'

Vamos fazer um novo commit neste feature-branch.

echo "Adding a feature" >> feature.txt
git add feature.txt
git commit -m "Add a new feature file"

Agora, vamos obter o hash do commit deste novo commit usando git log --oneline:

git log --oneline

A saída mostrará seu novo commit no topo, seguido pelos commits anteriores. Copie o hash do commit "Add a new feature file".

Agora, vamos usar git branch --contains com o hash do commit "Add a new feature file". Substitua [feature_commit_hash] pelo hash real que você copiou:

git branch --contains [feature_commit_hash]

A saída deve mostrar apenas * feature-branch. Isso ocorre porque este commit específico foi feito depois que criamos e mudamos para feature-branch, então ele só existe no histórico deste branch.

Agora, vamos tentar git branch --contains com o hash do primeiro commit ("Send a message to the future") novamente. Substitua [first_commit_hash] pelo hash que você usou na etapa anterior:

git branch --contains [first_commit_hash]

Desta vez, a saída deve mostrar tanto feature-branch quanto * master. Isso ocorre porque o feature-branch foi criado a partir do branch master, então ele contém todos os commits que estavam no master naquele momento, incluindo o primeiro commit.

Isso demonstra como git branch --contains pode ajudá-lo a entender a relação entre branches e os commits que eles incluem.

Resumo

Neste laboratório, aprendemos como verificar se um commit do Git está presente no branch atual. Começamos explorando o comando git log e suas várias opções, como --grep, --author e -n, para pesquisar e filtrar eficientemente o histórico de commits. Isso é crucial para navegar em projetos com inúmeros commits.

Em seguida, aprendemos como usar o comando git branch --contains para identificar quais branches incluem um commit específico. Este comando é valioso para rastrear a propagação de alterações em diferentes branches dentro de um repositório Git.