Como exibir apenas os arquivos não mesclados no git após uma falha de mesclagem

32

Ao mesclar alguns dos arquivos, não foi possível mesclar.

git status

mostra as mesclagens com êxito e com falha.

Como exibir apenas os arquivos de mesclagem malsucedidos (conflito).

Atualmente, estou usando o seguinte comando para fazer isso

 find . -name '*.cpp' -o -name '*.h' | xargs grep -l '<<<<'
Talespin_Kit
fonte

Respostas:

37
git diff

Isso mostrará apenas mesclagens com falha após uma mesclagem sem êxito. Tem muitas opções para configurar quais informações você deseja ver. Eu suspeito que esta é a opção exata que você procura:

 git diff --name-status --diff-filter=U

Consulte também http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#resolving-a-merge e http://www.kernel.org/pub/software/scm/ git / docs / git-diff.html

Matthijs P
fonte
9
Se você quiser uma lista limpa de arquivos sem o U anterior, poderá ligar git diff --name-only --diff-filter=U. Dessa forma, você pode canalizar a saída, por exemplo, faça git diff --name-only --diff-filter=U | xargs subl.
JHannes
9

Tente o seguinte:

$ git ls-files -u
see man-git-ls-files
Amos Folarin
fonte
7
git --no-pager diff --name-only --diff-filter=U

Mas como é mais provável que o objetivo edite esses arquivos, o seguinte será perfeito:

vim $(git diff --name-only --diff-filter=U)

Obrigado a @JHannes do comentário de outra resposta

jobwat
fonte