Eu li várias coisas sobre o recurso de rerre do git e estou pensando em ativá-lo. Mas eu não vi ninguém mencionar quaisquer possíveis problemas que possam surgir durante o uso. Devo assumir que há uma desvantagem, ou provavelmente estaria habilitado por padrão. Então, há alguma desvantagem em habilitar o novo recurso? Que problemas em potencial isso pode causar que não ocorreria de outra forma?
git
merge
git-rerere
Ryan C. Thompson
fonte
fonte
Resolved 'index.html' using previous resolution.
Respostas:
Se você fizer uma mesclagem incorreta, descarte-a e faça a "mesma" mesclagem novamente, ela ficará incorreta novamente. Você pode esquecer uma resolução gravada, no entanto. Da documentação :
Tenha o cuidado de usá-lo em caminhos específicos; você não quer explodir todas as suas resoluções gravadas em todos os lugares. (
forget
sem argumentos foi preterido para evitar que você faça isso, a menos que você digitegit rerere forget .
para solicitá-lo explicitamente.)Mas se você não pensar em fazer isso, pode facilmente acabar colocando essa mesclagem incorreta em seu histórico.
fonte
rerere
ainda deixa os arquivos com conflitos marcados como não mesclados, de modo que você tem que adicioná-los manualmente (esperançosamente após inspecioná-los / testá-los) antes de enviar. Você sempre pode usargit checkout -m <path>
para verificar a versão original do conflito e refazer a resolução, se necessário.Como JC Hamano menciona em seu artigo " Diversão com reler "
Portanto, se você ativar
rerere
um conteúdo muito amplo, poderá acabar com uma resolução de mesclagem surpreendente ou confusa por causa do último ponto.fonte
Eu tenho reabilitado globalmente. Eu realmente não notei nenhum problema e geralmente parece tornar minha vida mais fácil.
fonte
Eu escolhi um commit (no gitk) que continha apenas um arquivo binário. Cherrypick falhou devido a um conflito (o que é natural) e eu resolvi o conflito mantendo a escolha certa. Fiquei surpreso mais tarde ao descobrir em outro branch com rebase que minhas dlls não se comportaram - apenas para descobrir que não foram carregadas para o rebase como (eu especulo) resolução automática de conflito. Portanto, este é o único caso que encontrei (tendo reativado) de encontrar um comportamento contra-intuitivo (embora eu esteja certo de que é perfeitamente consistente).
fonte
git rerere forget path/to/compiled/bin.dll