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?


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.