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 -s
que imprime seu status, mas no -s
formato 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 ^UU
que 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