Abra todos os arquivos de mesclagem em conflito com Git

Quando mesclo ramos de algo, geralmente desejo abrir todos os arquivos conflitantes em meu editor. Não há uma maneira integrada de fazer isso (que eu saiba), mas na verdade não é terrivelmente complicado de fazer.

vim $(git status -s | grep ^UU | awk ‘{print $2}’)

Vamos decompô-lo.

Primeiro você tem o git status -sque imprime seu status, mas no -sformato short ( ). Qualquer coisa que comece com o código UU significa que ambas as versões do arquivo foram modificadas e sua mesclagem foi removida.

Nós canalizamos o grep ^UUque apenas nos dá todas as linhas do status que começam com “UU”.

Finalmente, usamos awk '{print $2}'para pegar o segundo argumento de cada linha. Em cada linha, o primeiro “argumento” é o status (UU) e o segundo é a localização real do arquivo.

É isso aí! Super fácil.

Você pode pegar isso e colocá-lo em um script executável ou configurá-lo como um alias em seu .gitconfig!

Roteiro:

#!/bin/sh
vim $
(git status -s | grep ^UU | awk ‘{print $2}’)

Git Alias:

[alias]
edit
-conflicts = "!f() { git status -s | grep ^UU | awk '{print $2}' ; }; vim `f`"

Respostas relacionadas:

fatal: recusar-se a mesclar histórias não relacionadas