Quel est le format recommandé à utiliser dans les messages de validation de git (COMMIT_EDITMSG), s'il y en a?git commit - format?
Répondre
Il varie, bien sûr, mais un format très commun est quelque chose comme ceci (extrait de http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html, que je pense que ce sommes vraiment bien):
Short (50 chars or less) summary of changes
More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of an email and the rest of the text as the body. The blank
line separating the summary from the body is critical (unless you omit
the body entirely); tools like rebase can get confused if you run the
two together.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Typically a hyphen or asterisk is used for the bullet, preceded by a
single space, with blank lines in between, but conventions vary here
Une chose qu'il ne traite pas quelque chose J'ai adopté pour moi-même, à savoir en utilisant des balises courtes au début de la première ligne pour identifier quel genre de commettre c'est. Cela peut être des balises comme [fix]
pour une correction de bogue, [new]
pour une nouvelle fonctionnalité ou [dev]
pour un commit qui n'affecte que les internes. Avec une politique comme celle-là, il est facile d'autogénérer un changelog depuis les commits.
Edit: Voici un autre bon résumé, ce site même: In git, what are some good conventions to format multiple comments to a single commit
Je ne recommanderais pas de grands messages. Si vous ne pouvez pas expliquer en une phrase ce que vous faites, votre engagement comporte trop de changements. Utilisez git rebase -i et divisez votre commit si vous avez déjà validé. Si vous n'avez pas encore validé les modifications, utilisez git add -p pour mettre en scène de petites parties et ensuite commettre comme des commits de plus petite taille.
Un historique des modifications granulaires comme celui-ci aidera les fusions et les rebases ultérieures. Il vous aidera également à établir un lien avec votre outil de suivi des problèmes. Si vous avez 2 tickets ou plus adressés, il sera plus difficile de déchiffrer quel ticket chaque changement dans le commit adressé.
Les changements non-triviaux nécessitent souvent une explication substantielle, en particulier si l'on travaille sur un grand projet qui doit conserver la sémantique d'un document de spécification externe et/ou interne. J'ai dû écrire quatre messages de validation de paragraphe pour changer une seule macro dans la source de MPICH parce que j'ai dû expliquer le comportement standard de MPI ET la macro sémantique interne pour justifier le changement. Si je n'avais pas fait cela, un futur développeur perdrait énormément de temps à redécouvrir cette information. Je downvote si je pouvais ... – Jeff
Merci, @Jeff. Le logiciel est un monde tellement vaste qu'il ne s'agit pas vraiment de règles mais de lignes directrices. Parfois, il est tout simplement impossible de les appliquer. –
Je suis d'accord avec l'idée de commits atomiques (qui est pourquoi un généralement n'aime pas écrasant) mais je pense qu'il est préférable d'erreur de fournir plus de contexte que nécessaire plutôt que moins. Aussi, si le travail n'a pas été commis comme atomique commet je ne recommanderais pas de les casser après comme vous le suggérez. Cela augmente le risque de commettre un code incomplet. –
- 1. git find fat commit
- 2. Bad commit to Git
- 3. git commit répertoire
- 4. git commit -a confusion
- 5. git commit des problèmes
- 6. Git - Duplicate commit problème
- 7. Massive git commit squashing
- 8. delete first git commit
- 9. git-commit-notificateur gmail
- 10. git-svn dcommiter un seul commit git
- 11. Multiple "git add" avant "git commit"
- 12. git ajouter. vs git commit -a
- 13. GIT Log ou Commit Monitor
- 14. Restaurer un commit git précédent?
- 15. Intercept "git commit -a (m)"
- 16. Git commit hooks - paramètres globaux
- 17. git re-commit reverse commets
- 18. Commander passé git submodule commit
- 19. git commit hash d'un module chargeable externe
- 20. Git: fichier commit avec LR avec msys/cygwin Git
- 21. git: find le plus grand commit
- 22. git commit échoue avec Vim et GVim
- 23. Git - restauration à un commit précédent
- 24. Git exclure un commit dans une branche
- 25. git commit - paramétrer l'horodatage dans le futur
- 26. Comment afficher les métainformations sur un seul commit dans git
- 27. Revert un commit fichier
- 28. Git: obtenir la référence d'un commit par jour?
- 29. Git fusionner le commit moyen dans une branche
- 30. Envoyer un mail après git commit pas push
Le préfixe le plus commun pour la première ligne est la partie du projet à laquelle la validation s'applique. Ce pourrait être un nom de fichier, un module, tout ce qui vous convient. Sinon, je pense que vous avez pratiquement couvert les suspects habituels! – Cascabel
J'ai tendance à ne pas encombrer mon résumé avec des métadonnées (autres que des pointeurs de bugs). Commits bien écrits avec de bons résumés sont un bon début. vous pouvez toujours ajouter des balises près du bas du résumé pour décider si quelque chose est éligible pour les notes de mise à jour. Ensuite, j'ai mis ceux dans le tag réel et [générer mon journal des modifications] (http://dustin.github.com/2009/01/17/changelog.html) à partir de balises. :) – Dustin