Introdução
Neste laboratório, você aprenderá como verificar efetivamente se um branch Git foi mesclado em outro branch. Exploraremos o método principal usando o comando git branch --merged, demonstrando seu uso e interpretando sua saída.
Além disso, verificaremos o status da mesclagem examinando o log Git para a presença de commits de mesclagem (merge commits) e testaremos o comportamento dos comandos com branches não mesclados para solidificar sua compreensão. Essa abordagem prática o equipará com as habilidades para gerenciar com confiança seus branches Git e manter um repositório limpo.
Use git branch --merged para Verificar
Nesta etapa, aprenderemos como usar o comando git branch --merged para ver quais branches foram totalmente integrados ao branch atual. Este é um comando muito útil para limpar seu repositório e entender o estado do seu projeto.
Primeiro, vamos garantir que estamos no diretório do nosso projeto. Abra seu terminal e navegue até o diretório my-time-machine:
cd ~/project/my-time-machine
Agora, vamos criar um novo branch e fazer um commit nele. Isso simulará um fluxo de trabalho comum onde você trabalha em uma funcionalidade em um branch separado.
git branch feature/add-greeting
git checkout feature/add-greeting
echo "Greetings from the feature branch!" >> greeting.txt
git add greeting.txt
git commit -m "Add greeting file"
Você deve ver uma saída semelhante a esta após o commit:
[feature/add-greeting a1b2c3d] Add greeting file
1 file changed, 1 insertion(+)
create mode 100644 greeting.txt
Agora, vamos voltar para o branch master:
git checkout master
Você deve ver uma saída indicando que você mudou de branch:
Switched to branch 'master'
Agora, vamos mesclar o branch feature/add-greeting no master:
git merge feature/add-greeting
Você deve ver uma saída indicando que a mesclagem foi bem-sucedida:
Updating a1b2c3d..e4f5g6h
Fast-forward
greeting.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 greeting.txt
Agora que mesclamos o branch feature/add-greeting no master, vamos usar git branch --merged para ver quais branches agora estão mesclados no branch atual (master).
git branch --merged
Você deve ver uma saída semelhante a esta:
* master
feature/add-greeting
O * indica o branch atual (master). A saída mostra que tanto master quanto feature/add-greeting estão listados. Isso significa que todos os commits de feature/add-greeting agora estão presentes no branch master.
Entender quais branches estão mesclados é importante porque ajuda a identificar branches que não são mais necessários e podem ser excluídos com segurança. Isso mantém seu repositório limpo e organizado.
Verificar com git log para Commit de Mesclagem
Na etapa anterior, mesclamos o branch feature/add-greeting no master. Agora, vamos usar o comando git log para ver o histórico de commits e confirmar que o commit de mesclagem está presente.
Certifique-se de que você ainda está no diretório ~/project/my-time-machine.
Execute o comando git log:
git log
Você deve ver uma lista de commits, com o mais recente no topo. Procure por uma mensagem de commit que indique uma mesclagem. Ela provavelmente se parecerá com isto:
commit e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9u0v1w2x (HEAD -> master)
Merge: a1b2c3d f0e1d2c
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:05:00 2023 +0000
Merge branch 'feature/add-greeting'
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (feature/add-greeting)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:03:00 2023 +0000
Add greeting file
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
Observe o commit com a mensagem "Merge branch 'feature/add-greeting'". Este é o commit de mesclagem que o Git criou automaticamente quando mesclamos o branch feature/add-greeting no master. Este commit tem dois commits pai, indicados pela linha "Merge:". Um pai é o topo do branch master antes da mesclagem, e o outro é o topo do branch feature/add-greeting.
O comando git log é essencial para entender o histórico do seu projeto. Ele permite que você veja todos os commits, quem os fez, quando foram feitos e quais alterações foram incluídas em cada commit. Isso é incrivelmente valioso para depuração, acompanhamento do progresso e colaboração com outras pessoas.
Pressione q para sair da visualização do log.
Testar com Branches Não Mesclados
Nas etapas anteriores, vimos como git branch --merged mostra os branches que foram totalmente integrados. Agora, vamos ver o que acontece quando temos um branch que não foi mesclado no branch atual.
Certifique-se de que você está no diretório ~/project/my-time-machine e no branch master. Você pode verificar isso com git status.
Vamos criar um novo branch chamado feature/add-farewell e mudar para ele:
git branch feature/add-farewell
git checkout feature/add-farewell
Você deve ver uma saída indicando que você mudou de branch:
Switched to branch 'feature/add-farewell'
Agora, vamos criar um novo arquivo e fazer um commit neste branch:
echo "Farewell from the farewell branch!" > farewell.txt
git add farewell.txt
git commit -m "Add farewell file"
Você deve ver uma saída semelhante a esta após o commit:
[feature/add-farewell a1b2c3d] Add farewell file
1 file changed, 1 insertion(+)
create mode 100644 farewell.txt
Agora, vamos voltar para o branch master:
git checkout master
Você deve ver uma saída indicando que você mudou de branch:
Switched to branch 'master'
Agora estamos no branch master, e o branch feature/add-farewell contém um commit que não está presente no master.
Vamos usar git branch --merged novamente:
git branch --merged
Você deve ver uma saída semelhante a esta:
* master
feature/add-greeting
Observe que feature/add-farewell não está listado na saída. Isso ocorre porque o commit que fizemos em feature/add-farewell não foi mesclado no branch master.
Agora, vamos usar o comando git branch --no-merged. Este comando mostra os branches que não foram mesclados no branch atual.
git branch --no-merged
Você deve ver uma saída semelhante a esta:
feature/add-farewell
Esta saída mostra corretamente feature/add-farewell porque ele contém commits que não estão no branch master.
Os comandos git branch --merged e git branch --no-merged são ferramentas poderosas para gerenciar seus branches. Eles ajudam você a controlar quais branches estão finalizados e podem ser excluídos, e quais branches ainda estão em desenvolvimento e precisam ser mesclados.
Resumo
Neste laboratório, aprendemos como verificar se um branch do Git foi mesclado no branch atual. Começamos usando o comando git branch --merged, que lista todos os branches cujos topos são alcançáveis a partir do topo do branch atual, mostrando efetivamente quais branches foram totalmente integrados. Demonstramos isso criando um novo branch, fazendo um commit, mesclando-o no branch master e, em seguida, usando git branch --merged para confirmar a mesclagem.
Também exploramos como verificar a mesclagem usando git log, procurando o commit de mesclagem, e testamos o comando com branches não mesclados para entender a diferença na saída. Essa experiência prática proporcionou uma compreensão prática de como usar os comandos Git para gerenciar e entender o estado dos branches em um repositório.



