J'ai lu une fois que les messages git commit devraient être au présent impératif, par exemple "Ajouter des tests pour x". Je me retrouve toujours à utiliser le passé, par exemple "Ajout de tests pour x", ce qui me semble beaucoup plus naturel.
Voici un récent commit de John Resig montrant le message deux en un:
Ajustez d'autres résultats de l'ensemble jQuery dans les tests de manipulation. Correction également de l'ordre des résultats de test attendus.
Est-ce que ça importe? Que dois-je utiliser?
git
git-commit
conventions
commit-message
Skilldrick
la source
la source
Réponses:
La préférence pour les messages de commit de style impératif au présent vient de Git lui-même. Depuis Documentation / SubmittingPatches dans le dépôt Git:
Vous verrez donc beaucoup de messages de validation Git écrits dans ce style. Si vous travaillez en équipe ou sur un logiciel open source, il est utile que tout le monde s'en tienne à ce style pour plus de cohérence. Même si vous travaillez sur un projet privé, et que vous êtes le seul à voir votre historique Git, il est utile d'utiliser l'humeur impérative car elle établit de bonnes habitudes qui seront appréciées lorsque vous travaillez avec d'autres.
la source
rebase
ou,cherry-pick
et dans ce cas, la validation peut être utilisée en dehors de son contexte d'origine. Par conséquent, le message de validation doit être écrit de manière autonome sans attendre du lecteur qu'il affiche les messages de validation environnants. Lorsque vous choisissez des correctifs, il est plus judicieux d'appliquer "Corriger l'algorithme de tri rapide" ou "Tri: améliorer les performances" au lieu de "Bogue fixe # 124" ou "Tri modifié pour améliorer les performances".Votre projet doit presque toujours utiliser le passé . Dans tous les cas, le projet doit toujours utiliser le même temps pour la cohérence et la clarté.
Je comprends certains des autres arguments faisant valoir l'utilisation du présent, mais ils ne s'appliquent généralement pas. Les points suivants sont des arguments courants pour écrire au présent et ma réponse.
C'est la raison la plus correcte pour utiliser le temps présent, mais uniquement avec le bon style de projet. Cette manière de penser considère toutes les validations comme des améliorations ou fonctionnalités facultatives, et vous êtes libre de décider quelles validations conserver et lesquelles rejeter dans votre référentiel particulier.
Cet argument fonctionne si vous avez affaire à un projet véritablement distribué. Si vous avez affaire à un projet distribué, vous travaillez probablement sur un projet open source. Et c'est probablement un très gros projet s'il est vraiment distribué. En fait, c'est probablement le noyau Linux ou Git. Étant donné que Linux est probablement la cause de la propagation et de la popularité de Git, il est facile de comprendre pourquoi les gens considéreraient son style comme l'autorité. Oui, le style a du sens avec ces deux projets. Ou, en général, il fonctionne avec de grands projets distribués open source .
Cela étant dit, la plupart des projets de contrôle de code source ne fonctionnent pas comme ça. Il est généralement incorrect pour la plupart des référentiels. C'est une façon moderne de penser aux commits: les référentiels Subversion (SVN) et CVS pourraient à peine supporter ce style d'archivage de référentiel. Habituellement, une branche d'intégration traitait le filtrage des mauvais enregistrements, mais ceux-ci n'étaient généralement pas considérés comme «facultatifs» ou «fonctionnalités intéressantes».
Dans la plupart des scénarios, lorsque vous effectuez des validations dans un référentiel source, vous écrivez une entrée de journal qui décrit ce qui a changé avec cette mise à jour, pour permettre aux autres utilisateurs de comprendre pourquoi une modification a été effectuée. Ce n'est généralement pas un changement facultatif - d'autres personnes dans le projet doivent fusionner ou rebaser dessus. Vous n'écrivez pas un journal tel que "Cher journal, aujourd'hui je rencontre un garçon et il me dit bonjour.", Mais à la place vous écrivez "J'ai rencontré un garçon et il m'a dit bonjour".
Enfin, pour de tels projets non distribués, 99,99% du temps, une personne lira un message de validation pour lire l'historique - l'histoire est lue au passé. 0,01% du temps, il décidera s'ils doivent appliquer ce commit ou l'intégrer dans leur branche / référentiel.
Non, je vous garantis que la majorité des projets jamais connectés dans un système de contrôle de version ont eu leur histoire au passé (je n'ai pas de références, mais c'est probablement vrai, étant donné que l'argument du temps présent est nouveau depuis Git). Les messages de «révision» ou de validation au présent n'ont commencé à avoir un sens que dans les projets vraiment distribués - voir le premier point ci-dessus.
Voir le premier point. 99,99% du temps, une personne lira un message de validation pour lire l'historique - l'histoire est lue au passé. 0,01% du temps, il décidera s'ils doivent appliquer ce commit ou l'intégrer dans leur branche / référentiel. 99,99% bat 0,01%.
Je n'ai jamais vu un bon argument qui dit utiliser un mauvais temps / grammaire parce qu'il est plus court. Vous n'enregistrerez probablement que 3 caractères en moyenne pour un message standard de 50 caractères. Cela étant dit, le temps présent en moyenne sera probablement de quelques caractères plus court.
Les tickets sont écrits soit comme quelque chose qui se passe actuellement (par exemple, l'application affiche un mauvais comportement lorsque je clique sur ce bouton), soit comme quelque chose qui doit être fait à l'avenir (par exemple, le texte devra être révisé par l'éditeur).
L'historique (c'est-à-dire les messages de validation) est écrit comme quelque chose qui a été fait dans le passé (par exemple, le problème a été résolu).
la source
J'ai écrit une description plus complète sur 365git .
la source
Tenez-vous à l'impératif présent, car
la source
Pour qui écrivez-vous le message? Et est-ce que le lecteur lit généralement le message avant ou après la prise de possession par lui-même?
Je pense que de bonnes réponses ont été données des deux points de vue, je serais peut-être simplement loin de suggérer qu'il existe une meilleure réponse pour chaque projet. Le vote par division pourrait suggérer autant.
c'est-à-dire résumer:
Le message est-il principalement destiné à d'autres personnes, lisant généralement à un moment donné avant qu'elles aient assumé le changement: une proposition de ce que la modification apportera à leur code existant.
Le message est-il principalement sous forme de journal / enregistrement pour vous-même (ou pour votre équipe), mais généralement lu dans la perspective d'avoir assumé le changement et de chercher en arrière pour découvrir ce qui s'est passé.
Peut-être que cela entraînera la motivation de votre équipe / projet, de toute façon.
la source
Est-ce que ça importe? les gens sont généralement assez intelligents pour interpréter correctement les messages, sinon, vous ne devriez probablement pas les laisser accéder à votre référentiel de toute façon!
la source
C'est comme tu veux. Utilisez simplement le message de validation comme vous le souhaitez. Mais c'est plus facile si vous ne basculez pas entre les heures et les langues.
Et si vous vous développez en équipe - cela devrait être discuté et réglé de manière fixe.
la source