Desativar Fast Forward Merging

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Git é um poderoso sistema de controle de versão que permite aos desenvolvedores colaborar em projetos de forma eficiente. Uma das funcionalidades do Git é o fast-forward merging (mesclagem de avanço rápido), que permite ao Git mesclar automaticamente branches (ramificações) que não possuem commits divergentes. No entanto, essa funcionalidade pode, por vezes, causar problemas, especialmente ao trabalhar em projetos maiores com múltiplos contribuidores. Neste laboratório, você aprenderá como desabilitar o fast-forward merging por padrão.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Desabilitar Fast Forward Merging

Por padrão, o Git utiliza o fast-forward merging para mesclar branches que não possuem commits divergentes. Isso significa que, se você tiver uma branch sem novos commits, o Git simplesmente moverá o ponteiro da branch que você está mesclando para o último commit da branch da qual você está mesclando. Embora isso possa ser útil em alguns casos, também pode causar problemas, especialmente ao trabalhar em projetos maiores com múltiplos contribuidores. Por exemplo, se dois desenvolvedores estiverem trabalhando na mesma branch e ambos fizerem alterações, o fast-forward merging pode causar conflitos difíceis de resolver.

Para desabilitar o fast-forward merging, vamos usar o repositório de https://github.com/labex-labs/git-playground.

  1. Clone o repositório, navegue até o diretório e configure a identidade:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
  1. Crie e mude para uma branch chamada my-branch, crie um arquivo hello.txt e adicione "hello,world" a ele, adicione-o à área de staging e faça o commit com a mensagem "Added hello.txt":
git checkout -b my-branch
echo "hello,world" > hello.txt
git add .
git commit -m "Added hello.txt"
  1. Execute o seguinte comando para desabilitar o fast-forward merging:
git config --add merge.ff false

Isso desabilitará o fast-forward merging para todas as branches, mesmo que seja possível. Você pode usar a flag --global para configurar esta opção globalmente:

git config --global --add merge.ff false
  1. Volte para a branch master e mescle a branch my-branch, salve e saia sem alterar o texto:
git checkout master
git merge my-branch

Agora, o Git sempre criará um merge commit, mesmo que seja possível fazer fast forward:

commit 6e17a776ab51a89ace069614b0caf1c07915a92c (HEAD -> master)
Merge: ec5ea6d 6d7de91
Author: xiaoshengyunan <@users.noreply.github.com>
Date:   Mon Jul 17 13:30:44 2023 +0800

    Merge branch 'my-branch'

Resumo

Neste laboratório, você aprendeu como desabilitar o fast-forward merging por padrão. Isso pode ser útil ao trabalhar em projetos maiores com múltiplos contribuidores, pois pode ajudar a prevenir conflitos e facilitar o gerenciamento de alterações. Ao usar o comando git config, você pode desabilitar o fast-forward merging para todas as branches, mesmo que seja possível.