Um desenvolvedor tentou realizar um merge, porém o Git acusou conflitos em um dos arquivos. Após resolver manualmente os conflitos neste arquivo, quais comandos ele deve executar para prosseguir e finalizar o processo de merge?
- A)Executar git reset –hard e depois git push origin
Errada, porque git reset --hard descarta alterações locais e não é o passo correto para finalizar um merge com conflito resolvido.
- B)Executar git merge –abort e depois git commit
Errada, porque git merge --abort serve para cancelar o merge em andamento, e não para concluí-lo.
- C)Executar git stash apply e depois git checkout master
Errada, porque git stash apply e git checkout master não resolvem nem encerram o conflito do merge atual.
- D)Executar git add no arquivo modificado e depois git commit
Certa, porque após resolver o conflito você deve adicionar o arquivo com git add e então fazer git commit para finalizar o merge.
Gabarito: D
Quando o Git encontra conflito em um merge, ele para e espera você resolver o trecho problemático manualmente. Depois disso, o fluxo é simples: você edita o arquivo, remove as marcas de conflito e confirma para o Git que aquele arquivo já foi resolvido. Em Git, isso normalmente significa usar git add no arquivo que foi ajustado, porque o add marca o conflito como resolvido no índice. Só depois dessa etapa o merge pode ser finalizado com um commit, caso o Git não tenha concluído automaticamente. Em outras palavras, não basta "arrumar o arquivo" no editor: você precisa informar ao Git que a resolução foi feita. É aí que o git add entra como o sinal verde do processo. Por isso a alternativa D está correta: após resolver manualmente os conflitos, o comando esperado é git add no arquivo modificado e depois git commit para concluir o merge. Esse comportamento é padrão do Git e aparece em praticamente toda documentação oficial sobre merge com conflito. Resumo de prova: conflito resolvido no arquivo -> git add -> git commit. Se você lembrar dessa sequência, já evita a maioria das pegadinhas.