web-dev-qa-db-fra.com

Git commit sans message de commit

Comment puis-je valider des modifications sans spécifier le message de validation? Pourquoi est-il requis par défaut?

95
Nik

git nécessite généralement un message non vide, car fournir un message de validation significatif fait partie des bonnes pratiques de développement et de bonne gestion du référentiel. La première ligne du message de validation est utilisée partout dans git; pour plus d'informations, lisez "Remarque à propos des messages de validation de Git" .

Si vous ouvrez Terminal.app, cd dans votre répertoire de projet et git commit -am '', vous verrez qu'il échoue car un message de validation vide n'est pas autorisé. Les nouvelles versions de git ont la
--allow-empty-message argument de ligne de commande, y compris la version de git incluse dans la dernière version de Xcode. Cela vous permettra d'utiliser cette commande pour effectuer un commit avec un message vide:

git commit -a --allow-empty-message -m ''

Avant le --allow-empty-message drapeau, vous deviez utiliser le commit-tree commande de plomberie. Vous pouvez voir un exemple d'utilisation de cette commande dans le chapitre "Raw Git" de le livre Git .

120

Et si vous ajoutez un alias, c'est encore mieux, non?

git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'

Maintenant, vous venez de faire un nccommit, nc pour aucun commentaire, et tout devrait être engagé.

24
dalvarezmartinez1

Lorsque vous travaillez sur une mise à jour de code importante, si vous avez vraiment besoin d'un safepoint intermédiaire, vous pouvez simplement procéder comme suit:

git commit -am'.'

ou plus court:

git commit -am.
16
lackadaisical

Remarque: à partir de git1.8.3.2 (juillet 2013), la commande suivante ( mentionnée ci-dessus par Jeremy W Sherman ) n'ouvrira pas de éditeur plus:

git commit --allow-empty-message -m ''

Voir commit 25206778aac776fc6cc4887653fdae476c7a9b5a :

Si un message vide est spécifié avec l'option -m de git commit, l’éditeur est lancé.
C'est inattendu et inutile.
Au lieu d’utiliser la longueur de la chaîne de message pour vérifier si l’utilisateur en a spécifié une, rappelez-vous directement si l’option -m a été donné.


git 2.9 (juin 2016) améliore le comportement du message vide:

Voir commettre 178e814 (6 avril 2016) de Adam Dinwoodie (me-and) .
Voir commit 27014cb (07 avr. 2016) par Jeff King (peff) .
(Fusion par Junio ​​C Hamano - gitster - dans commit 0709261 , 22 avril 2016)

commit: n'ignore pas un message vide donné par -m ''

  • "git commit --amend -m '' --allow-empty-message ", même si cela semble étrange, est une demande valide pour modifier le commit afin de ne pas avoir de message du tout.
    En raison de la mauvaise détection de la présence de -m _ sur la ligne de commande, nous avons fini par garder le message du journal du commit original.
  • "git commit -m "$msg" -F file "devrait être rejeté si $msg est une chaîne vide ou non, mais en raison du même bogue, elle n’a pas été rejetée lorsque $msg est vide.
  • "git -c template=file -m "$msg" "doit ignorer le modèle même lorsque $msg est vide, mais il ne l’a pas fait et a plutôt utilisé le contenu du fichier de modèle.
12
VonC

Vous n'avez pas besoin de git pour accomplir cela. L'utilisation créative d'une fonction bash fera parfaitement l'affaire. Si vous ne vous souciez pas des messages, définissez-en un par défaut et oubliez-le.

function gitcom() {
  git commit -m "my default commit message"
}

Si vous vous sentiez vraiment aventureux, vous pouvez ajouter, valider et pousser avec une seule commande.

function gitzap() {
  git add . && git commit -m "whatevs" && git Push $1 $2
}

Que vous courriez alors comme

gitzap Origin master

Vous pourriez même aller plus loin et utiliser parse_git_branch pour vous épargner quelques frappes au clavier, ou définir un défaut commun de "origine" et "maître".

2
Steven Garcia

Git nécessite un commit pour avoir un commentaire, sinon il n'acceptera pas le commit.

Vous pouvez configurer un modèle par défaut avec git comme message de validation par défaut ou rechercher l'indicateur --allow-empty-message dans git. Je pense (pas à 100% sûr) que vous pouvez reconfigurer git pour accepter les messages de commit vides (ce qui n’est pas une si bonne idée). Normalement, chaque commit devrait être un peu du travail décrit dans votre message.

1
Daniel Kurka

J'ai trouvé la solution la plus simple:

git commit -am'save'

C'est tout, vous allez travailler autour des messages git commit.

vous pouvez même enregistrer cette recommandation dans une bash ou autre chose pour la rendre plus simple.

Les membres de notre équipe écrivent toujours ces messages, mais presque personne ne les reverra.

Le message de validation est une tâche qui tue le temps au moins dans notre équipe, nous l'ignorons donc.

1
bronze man

J'ai la configuration suivante dans mon projet privé:

git config alias.auto 'commit -a -m "changes made from [device name]"'

De cette façon, quand je suis pressé, je le fais

git auto
git Push

Et au moins, je sais de quel appareil le commit a été fait.

0
e18r