Dans cette documentation, il est mentionné
Un objet commit peut avoir un nombre quelconque de parents.
Mais, à ma connaissance, le seul cas où un commit aura plus d'un parent est le moment où une fusion a eu lieu. Dans ce cas, il n'y aura que deux parents. Ma question est donc la suivante: un commit peut-il avoir plus de 2 parents? Si oui, quand?
Réponses:
Vous pouvez utiliser git merge pour fusionner plusieurs validations dans votre branche actuelle. De
man git-merge
(ougit help merge
):Le résultat sera un engagement avec plus de deux parents lorsque vous le ferez.
la source
Oui, que diriez-vous de 100 000 parents?
Voici un exemple GitHub en direct avec une fusion de 100 000 validations: https://github.com/cirosantilli/test-octopus-100k Généré avec ce script .
Trivia
Linus n'aime pas les engagements avec plus de 60 parents: https://www.destroyallsoftware.com/blog/2017/the-biggest-and-weirdest-commits-in-linux-kernel-git-history
Regardez le format de l'objet commit Git
https://stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object/37438460#37438460
À partir de cette analyse, nous pouvons voir que la liste de la liste des parents est une liste arbitraire de types séparés par un saut de ligne:
et donc un nombre arbitraire de parents est autorisé.
Exemple minimal
Scénario:
Sortie:
la source
Vous pouvez spécifier plusieurs branches lors de la fusion.
Par exemple:
Puis engage a plus de parents.
la source