Noções básicas de fusão e exclusão de gits

Noções básicas de fusão e exclusão de gits
A ramificação pode ajudá -lo a manter seu trabalho organizado. No entanto, você precisa ser capaz de mesclar seu trabalho para tornar o trabalho coerente. Se você nunca se fundir e excluir os galhos, sua história pode se tornar caótica demais para entender.

Trabalhando com a fusão e a filial exclua

Vamos primeiro criar um ramo mestre, colocar algumas confirmações, criar um novo ramo chamado Recursos, adicionar algumas confirmações, depois volte para dominar e se comprometer 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"
Recursos de ramificação $ git
Recursos de checkout de $ git
$ echo "Add Recurso 1" >> Recurso.TXT
$ git add -a
$ git Commit -M "C2: Recurso 1"
$ echo "Add Recurso 2" >> Recurso.TXT
$ git add -a
$ git Commit -M "C3: Recurso 2"
$ git checkout mestre
$ echo "MODIFICANTE MASTRO AGRESENTE" >> Design.TXT
$ git add -a
$ git Commit -M "C4: Mestre modificado"

Os comandos acima criaram a seguinte situação:

Você pode verificar o histórico dos dois ramos para ver o que eles têm:

$ git status
No mestre da filial
nada para se comprometer, diretório de trabalho limpo
$ git log --oneeline
2031B83 C4: Mestre modificado
1C0B64C C1: Código enviado
Recursos de checkout de $ git
Mudou para a filial 'Recursos'
$ git log --oneeline
93d220b C3: Recurso 2
AD6DDB9 C2: Recurso 1
1C0B64C C1: Código enviado
EC0FB48 C0: Projeto iniciado

Agora, vamos supor, você deseja trazer todas as mudanças da filial de recursos para o nosso ramo mestre. Você terá que iniciar o processo do destino da mesclagem. Porque queremos se fundir no ramo principal, você precisa iniciar o processo a partir daí. Então, vamos conferir o ramo principal:

$ git checkout mestre
Mudou para a filial 'Mestre'
$ git status
No mestre da filial
nada para se comprometer, diretório de trabalho limpo

Agora vamos criar a mesclagem:

Recursos de fusão de $ git

Se não houver conflitos na mesclagem, você receberá um editor de texto com os comentários:

Merge Branch 'Recursos'
# Por favor, insira uma mensagem de confirmação para explicar por que essa mesclagem é necessária,
# Especialmente se ele mesclará um upstream atualizado em uma filial de tópicos.
#
# Linhas começando com '#' serão ignoradas e uma mensagem vazia aborta
# o compromisso.

Você pode modificar os comentários ou aceitar os padrão. A saída de mesclagem deve mostrar resultados como este:

Merge feita pela estratégia 'recursiva'.
recurso.txt | 2 ++
1 arquivo alterado, 2 inserções (+)
Criar Modo 100644 Recurso.TXT

Após a fusão, você tem a seguinte condição:

Se você verificar os logs, encontrará:

$ git status
No mestre da filial
nada para se comprometer, diretório de trabalho limpo
$ git log --oneeline
46539a3 C5: ramo de mesclagem 'Recursos'
2031B83 C4: Mestre modificado
93d220b C3: Recurso 2
AD6DDB9 C2: Recurso 1
1C0B64C C1: Código enviado
EC0FB48 C0: Projeto iniciado

Você mesclou com sucesso as mudanças. No entanto, o ramo de recursos ainda está presente.

$ git ramo -a
características
* mestre

Você pode excluí -lo com o seguinte comando:

Recursos de ramificação $ git -D

Se você verificar agora, você deve ver apenas o ramo principal:

$ git ramo -a
* mestre

Conclusão

Certifique -se de verificar regularmente se há galhos não utilizados e excluí -los. Você quer manter seu repositório limpo para facilitar a navegação e a compreensão.

Leitura adicional:

  • https: // git-scm.com/book/en/v2/git ramnching-basic rchaming and merging