Em desta documentação é mencionado
Um objeto de confirmação pode ter qualquer número de pais.
Mas, pelo que entendi, o único caso em que um commit terá mais de um pai é quando uma mesclagem ocorreu e, nesse caso, haverá apenas dois pais. Então, minha pergunta é: um commit pode ter mais de 2 pais? Se assim for, quando?
Respostas:
Você pode usar o git merge para mesclar mais de um commit no seu ramo atual. De
man git-merge
(ougit help merge
):O resultado será um comprometimento com mais de dois pais quando você fizer isso.
fonte
Sim, que tal 100k pais?
Aqui está um exemplo ao vivo do GitHub com uma mesclagem de 100k confirmações: https://github.com/cirosantilli/test-octopus-100k Gerado com este script .
Jogo de perguntas sobre cultura geral
Linus não gosta de confirmações com mais de 60 pais: https://www.destroyallsoftware.com/blog/2017/the-biggest-and-weirdest-commits-in-linux-kernel-git-history
Dê uma olhada no formato do objeto de confirmação do Git
https://stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object/37438460#37438460
A partir dessa análise, podemos ver que a lista de pais é uma lista arbitrária e separada de nova linha do tipo:
e assim um número arbitrário de pais é permitido.
Exemplo mínimo
Roteiro:
Resultado:
fonte
Você pode especificar mais de uma ramificação ao mesclar.
Por exemplo:
Então comprometer tem mais pais.
fonte