Em resumo, porque a fusão geralmente é outro lugar para algo dar errado, e ele só precisa dar errado uma vez para deixar as pessoas com muito medo de lidar com isso novamente (uma vez mordido duas vezes tímido, se quiser).
Então, digamos que estamos trabalhando em uma nova tela de gerenciamento de contas, e acontece que um bug foi descoberto no fluxo de trabalho Nova conta. OK, seguimos dois caminhos separados - você termina o Gerenciamento de contas e eu corrigo o erro com Novas contas. Como estamos lidando com contas, trabalhamos com códigos muito semelhantes - talvez tenhamos que ajustar os mesmos trechos de código.
Agora, neste momento, temos duas versões diferentes, mas totalmente funcionais, de software. Ambos executamos um commit em nossas alterações, testamos obedientemente nosso código e, independentemente, estamos muito confiantes de que fizemos um ótimo trabalho. O que agora?
Bem, é hora de fundir, mas ... merda, o que acontece agora? Poderíamos muito bem ir de dois conjuntos de software em funcionamento a um software unificado e horrivelmente quebrado de software com erros, em que o gerenciamento de contas não funciona e as novas contas estão quebradas e nem sei se o bug antigo ainda está lá .
Talvez o software fosse inteligente e dissesse que havia um conflito e insistia em dar orientação. Bem, droga - eu me sento para fazer isso e vejo que você adicionou um código complexo que não entendo imediatamente. Eu acho que está em conflito com as mudanças que fiz ... Eu pergunto, e quando você chegar um minuto você verifica e vê meu código que você não entende. Um de nós dois precisa dedicar algum tempo para se sentar, fazer uma fusão adequada e possivelmente testar novamente a coisa toda para garantir que não a quebremos.
Enquanto isso, oito outros caras estão cometendo códigos como os sádicos, fiz algumas pequenas correções e as enviei antes que soubéssemos que tínhamos um conflito de mesclagem, e, com certeza, parece um bom momento para fazer uma pausa, e talvez você estão de folga para a tarde ou presos em uma reunião ou o que quer. Talvez eu devesse tirar férias. Ou mude de carreira.
E assim, para escapar desse pesadelo, algumas pessoas ficaram com muito medo de se comprometer (o que mais há de novo, certo?). Naturalmente, somos avessos ao risco em cenários como este - a menos que pensemos que somos péssimos e que vamos estragar tudo, caso em que as pessoas começam a agir com abandono imprudente. suspiro
Então lá vai você. Sim, os sistemas modernos são projetados para aliviar essa dor, e é suposto ser capaz de voltar e rebocar, rebaixar, rebaixar e liberar bases e hanglide e tudo isso.
Mas é tudo mais trabalho, e nós apenas queremos apertar o botão no micro-ondas e fazer uma refeição de 4 pratos antes de termos tempo para encontrar um garfo, e tudo parece muito insatisfatório - código é trabalho, é produtivo, significativo, mas manipular graciosamente uma mesclagem simplesmente não conta.
Os programadores, em regra, precisam desenvolver uma ótima memória de trabalho e, em seguida, tendem a esquecer imediatamente todos esses nomes de lixo e variáveis e o escopo assim que terminam o problema, além de lidar com um conflito de mesclagem (ou pior, mesclagem incorreta) é um convite para ser lembrado de sua mortalidade.