Forçar o Git a sempre escolher a versão mais recente durante uma fusão?

103

Vamos supor que eu mergegit e haja um conflito de mesclagem.

Minha pergunta é: como posso forçar o git a sempre escolher a versão mais recente do código em conflito para que não precise resolver o conflito manualmente?

bartek
fonte
mas eu quero fazer uma mesclagem (não substituir commits), mas, adicionalmente, resolver conflitos automaticamente.
Bartek

Respostas:

188

Não é exatamente a versão "mais nova", mas você pode dizer ao git para sempre preferir a versão no branch atual usando git merge branch -X ours, ou preferir a versão do branch sendo mesclado, usando git merge branch -X theirs.

De man git-merge:

nosso:

Esta opção força os pedaços conflitantes a serem resolvidos automaticamente de forma limpa, favorecendo nossa versão. As alterações da outra árvore que não conflitam com o nosso lado são refletidas no resultado da mesclagem. Para um arquivo binário, todo o conteúdo é obtido do nosso lado.

deles:

Isso é o oposto de "nosso".

Renato Zannon
fonte
9
ours- theirs!! Basta dizer e você entenderá o que o comando faz! Eu amo o Git! : D
Haywire
14
nota: se você já usou git merge branch, você precisará git merge --abortantes de fazer isso.
John Dvorak de
1
Não funciona para mim. Ele ainda aborta a mesclagem. error: The following untracked working tree files would be overwritten by merge:Eu nem sei porque esses arquivos estão neste branch em primeiro lugar, mas eles deveriam ser sobrescritos, e git se recusa.
mcv
2
Se eles não estiverem rastreados, você precisa removê- git addlos (ou ) primeiro. Leia um pouco sobre git clean, pode ajudá-lo com isso.
Renato Zannon
Depois de executado git merge ours, se houver algum arquivo de conflito, haverá algum log? e eu poderia rastrear o de git merge ours?
zx1986
19

Eu uso isso,

git fetch --prune
git reset --hard origin/master
Wolfgang
fonte
2
Essa solução me ajudou a corrigir conflitos não mesclados quando tudo que eu queria era substituir pelo branch master. usei o git reset --hard master (do local)
Juan Mendez