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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top