Fusão de ramos
Diferentes cenários de uso de fusão de ramificações:
- Mesclar o branch especificado com o branch atual
- Conflito de fusão de ramos
- (Não) Mesclagem de modo de avanço rápido
1. Mesclar o branch especificado com o branch atual
Mesclar o branch especificado com o branch atual
git merge <branch name>
Dois, o conflito de fusão de ramos
Quando houver colaboração de vários ramos, geralmente haverá alguns conflitos;
Seu local tem duas ramificações master/dev
, apontando para a mesma versão, o estado inicial é o mesmo e há apenas um readme.txt
arquivo.
Você master
adiciona um parágrafo acima hello master
, eadd/git commit
Em seguida, mude para dev e adicione um parágrafo hello dev
, eadd/commit
Neste ponto, se você deseja mesclar dev
para master
a consolidação de filial ocorre conflito
1. Resolver conflitos de fusão de ramos
Ao realizar a git merge <branch name>
fusão de ramificações, se ocorrerem os seguintes conflitos, você precisará fundir manualmente e, em seguida, enviar;
$ git merge feature1
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
# when resolve the conflict, can exec the following commands:
# git add <files>
# git commit -m "descibe content"
# this command can show the commit graph.
# git log --graph
3. (Não) Fusão de modo de avanço rápido
1. modo ff
Ao criar um novo branch chamado dev
e adicionar um readme.txt
arquivo a este branch, mude para o master para fazer a operação de mesclagem, execute:
# To execute merege command on master branch.
git merge dev
Se o branch de desenvolvimento for excluído neste momento, as informações do branch desaparecerão; este modo de mesclagem é chamado de modo Fast-Forward
2. modo --no-ff
Se o --no-ff
modo for usado , significa que o modo está desativado ff
e execute:
# To execute merge command using --no-ff mode on master branch.
git merge --no-ff -m "describe message about this commit" dev