Réponses:
Il y a rarement une bonne raison de faire cela, mais le paramètre est --allow-emptypour les commits vides (aucun fichier modifié), contrairement aux --allow-empty-messagemessages de commit vides. Vous pouvez également en savoir plus en tapant git help commitou en visitant la documentation en ligne .
Alors que l'objet arborescence (qui a son propre hachage) sera identique, le commit aura en fait un hachage différent, car il aura vraisemblablement un horodatage et un message différents, et aura certainement un commit parent différent. Ces trois facteurs sont intégrés dans gitl'algorithme de hachage d'objet de.
Il y a plusieurs raisons pour lesquelles vous pourriez vouloir un commit vide (incorporant certains des commentaires):
gitcommandes sans générer de changements arbitraires (via Vaelus ).gitolite(via Tatsh ).D'autres stratégies pour ajouter des métadonnées à une arborescence de validation incluent:
git notes pour associer une note mutable au-dessus d'un commit immuable existant.commit --amendsi la télécommande ne permet pas de forcer la poussée. De cette façon, vous pouvez permettre aux développeurs de voir un message important qui accompagne le commit précédent.
Si vous utilisez un système comme gitversion, il est très logique de faire ce genre de commit. Vous pourriez avoir un commit qui est spécifiquement pour boper la version majeure en utilisant un + semver: commentaire majeur.
Peut-être comme alternative plus judicieuse, vous pouvez créer une balise annotée (un commit nommé avec un message). Voir l' git tag -aoption.
devformulaire de branchemaster, puis unefeatbranche immédiatement à partir dedev, lafeatbranche semble provenir de lamasterbranche car il n'y a pas de commit distinctif sur ladevbranche d'oùfeatprovient la branche. Un commit vide lorsque vous créez ladevbranche pour la première fois aide à établir ladevbranche comme étant sa propre branche indéfiniment durable indépendante demaster. En règle générale, il est utile d'utiliser des branches comme couches et de créer deux couches à partir d'un seul commit