Trabalhando com Mesclagem e Exclusão de Filiais
Vamos primeiro criar um branch master, colocar alguns commits, criar um novo branch chamado features, adicionar alguns commits, então voltar ao master e fazer commit novamente. Aqui estão os comandos:
$ mkdir mygame$ cd mygame
$ git init
$ echo "Design Decision 1: Brainstarm" >> design.TXT
$ git add -A
$ git commit -m "C0: Projeto iniciado"
$ echo "Design Decision 2: Write Code" >> design.TXT
$ git add -A
$ git commit -m "C1: Código enviado"
$ git branch features
$ git checkout features
$ echo "Adicionar recurso 1" >> recurso.TXT
$ git add -A
$ git commit -m "C2: Recurso 1"
$ echo "Adicionar recurso 2" >> recurso.TXT
$ git add -A
$ git commit -m "C3: Recurso 2"
$ git checkout master
$ echo "Modificando Mestre Novamente" >> design.TXT
$ git add -A
$ git commit -m "C4: Master Modificado"
Os comandos acima criaram a seguinte situação:
Você pode verificar o histórico dos dois branches para ver quais commits eles têm:
$ git statusNo mestre de filial
nada para confirmar, diretório de trabalho limpo
$ git log --oneline
2031b83 C4: Master Modificado
1c0b64c C1: Código enviado
$ git checkout features
Comutado para 'recursos' de ramificação
$ git log --oneline
93d220b C3: Recurso 2
ad6ddb9 C2: Recurso 1
1c0b64c C1: Código enviado
ec0fb48 C0: Projeto iniciado
Agora vamos supor que você deseja trazer todas as mudanças do branch de recursos para o nosso branch master. Você terá que iniciar o processo a partir do destino da fusão. Porque queremos fundir no branch master, você precisa iniciar o processo a partir daí. Então, vamos verificar o branch master:
$ git checkout masterMudou para branch 'master'
$ git status
No mestre de filial
nada para confirmar, diretório de trabalho limpo
Agora vamos criar a fusão:
$ git merge featuresSe não houver conflitos na mesclagem, você terá um editor de texto aberto com os comentários:
Mesclar 'recursos' do branch# Por favor, insira uma mensagem de confirmação para explicar por que essa mesclagem é necessária,
# especialmente se mescla um upstream atualizado em um branch de tópico.
#
# Linhas começando com '#' serão ignoradas e uma mensagem vazia será cancelada
# o commit.
Você pode modificar os comentários ou aceitar os padrão. A saída de mesclagem deve mostrar resultados como este:
Mesclagem feita pela estratégia 'recursiva'.característica.txt | 2 ++
1 arquivo alterado, 2 inserções (+)
modo de criação 100644 recurso.TXT
Após a fusão, você tem a seguinte condição:
Se você verificar os logs, encontrará:
$ git statusNo mestre de filial
nada para confirmar, diretório de trabalho limpo
$ git log --oneline
46539a3 C5: Mesclar 'recursos' de ramificação
2031b83 C4: Master Modificado
93d220b C3: Recurso 2
ad6ddb9 C2: Recurso 1
1c0b64c C1: Código enviado
ec0fb48 C0: Projeto iniciado
Você mesclou as alterações com sucesso. No entanto, o ramo de recursos ainda está presente.
$ git branch -arecursos
* mestre
Você pode excluí-lo com o seguinte comando:
$ git branch -d featuresSe você verificar agora, verá apenas o branch master:
$ git branch -a* mestre
Conclusão
Certifique-se de verificar regularmente se há ramos não utilizados e excluí-los. Você deseja manter seu repositório limpo para torná-lo fácil de navegar e entender.
Leitura adicional:
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging