Refazer mesclagem de apenas um único arquivo

112

Estou no meio de uma grande fusão e costumava git mergetoolresolver todos os conflitos, mas ainda não me comprometi, pois queria ter certeza de que a fusão estava ok primeiro.

Acontece que cometi um erro ao resolver os conflitos em um arquivo e gostaria de refazer a resolução de conflitos git mergetoolnesse arquivo. Como esta é uma grande mesclagem, gostaria de evitar refazer a mesclagem em todos os outros arquivos, pelo que entendi que teria que fazer isso git merge --abort.

Eu sei que poderia apenas editar o arquivo manualmente, mas isso seria muito tedioso e seria muito mais fácil apenas refazer a git mergetooloperação. Isso é possível?

Hammar
fonte
1
Possível duplicata de Como re-mesclar um arquivo no git?
jocull

Respostas:

181

Parece que só estava procurando no lugar errado. A solução acabou sendo bastante simples.

git checkout -m <file>

Isso retorna o arquivo ao seu estado de conflito. Posso então correr git mergetoolpara refazer a fusão.

Hammar
fonte
2
Isso meio que funcionou para mim. O índice acabou em um estado de fusão, mas mergetool não considerou que houvesse quaisquer fusões pendentes. Acabei de fazer a fusão usando o vi, mas foi estranho de qualquer maneira.
Chris Cleeland
1
obrigado! isso é exatamente o que é necessário. A propósito, mesclar manualmente com o vi é sempre um prazer e totalmente satisfatório. deslocar para a esquerda ou para a direita nunca me deu a confiança de que a fusão está
ocorrendo
1
Existem alguns detalhes adicionais úteis (com a mesma resposta) na resposta desta pergunta duplicada .
Joshua Goldberg
-4

Você sempre pode editar os arquivos manualmente.

Se você estiver usando o git merge --no-commit, então você simplesmente terá um commit preparado (após a fusão automática e semi-automática).

Você ainda pode editar os arquivos com segurança e só confirmar quando estiver totalmente satisfeito.

Šimon Tóth
fonte