Posso renomear local, remoto e base usado no Git MerGegool?
-
22-09-2019 - |
Pergunta
Digamos que estou fazendo uma rebase B de um ramo em mestre e há um conflito. O Git abre a ferramenta de mesclagem padrão com 3 arquivos como entrada: file.local, file.base, file.remote (eles são nomeados um pouco diferentes, mas local, base e remoto estão nos nomes de arquivos e é como eles são distintos ).
Agora, de acordo com a página do Mergeool Man: $ Local está definido com o nome de um arquivo temporário que contém o conteúdo do arquivo na ramificação atual; $ Remote Set com o nome de um arquivo temporário que contém o conteúdo do arquivo a ser mesclado e $ Base definido com o nome de um arquivo temporário que contém a base comum para a mesclagem.
Isso realmente não faz sentido para mim. Local é o estado atual do ramo. Onde me perdi é base e remoto. Então, minha pergunta é:
É possível fazer com que o git use o nome da filial em vez de nomes locais e igualmente mais significativos, além da base e do controle remoto? Por exemplo, se o nome da filial for característica e a base = o arquivo como ele existe no mestre, existe uma maneira de obter o git para substituir o Featurex para o local e o mestre da base, para que seja mais aparente de onde a fonte é proveniente ? Isso é especialmente um problema ao fazer uma rebase.
Solução
É possível fazer o git usar o nome da filial em vez de local
Eu acho que não, mas se você declarar em seu mergool uma ferramenta de mesclagem gráfica, você pode chamar essa ferramenta externa com o título de sua escolha:
(Extrato de um script de calll de ferramenta de mesclagem)
t1="'$4 (current branch)'"
t2="'(common ancestor)'"
t3="'(to be merged)'"
"C:/Program Files/Araxis/Araxis Merge/Compare.exe" -max -wait -merge -3 -a2 -title1:${t1} -title2:${t2} -title3:${t3} "$alocal" "$base" "$remote" "$result"
Dessa forma, você pode ver mais facilmente o que é o quê.
Outras dicas
Não tenho certeza de que essa explicação esteja correta, mas a base será o ponto em que as duas versões do arquivo foram as mesmas. Pode ser o que você chama de 'pai' em uma árvore git.
Quando eles divergiram, você acabou com o local e o controle remoto, que estão conflitantes um com o outro.