Réponses:
Il y a rarement une bonne raison de faire cela, mais le paramètre est --allow-empty
pour les commits vides (aucun fichier modifié), contrairement aux --allow-empty-message
messages de commit vides. Vous pouvez également en savoir plus en tapant git help commit
ou 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 git
l'algorithme de hachage d'objet de.
Il y a plusieurs raisons pour lesquelles vous pourriez vouloir un commit vide (incorporant certains des commentaires):
git
commandes 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 --amend
si 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 -a
option.
dev
formulaire de branchemaster
, puis unefeat
branche immédiatement à partir dedev
, lafeat
branche semble provenir de lamaster
branche car il n'y a pas de commit distinctif sur ladev
branche d'oùfeat
provient la branche. Un commit vide lorsque vous créez ladev
branche pour la première fois aide à établir ladev
branche 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