¿Cuál es el formato recomendado para usar en los mensajes de confirmación de git (COMMIT_EDITMSG), si hay alguno?git commit - format?
Respuesta
Varía, por supuesto, pero un formato muy común es algo como esto (tomado de http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html, que creo que resume todo muy 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
Una cosa que no aborda es algo He adoptado por mí mismo, es decir, el uso de etiquetas cortas al comienzo de la primera línea para identificar qué tipo de compromiso es. Eso podría ser etiquetas como [fix]
para una corrección de errores, [new]
para una nueva característica o [dev]
para una confirmación que solo afecta a las partes internas. Con una política como esa, es fácil generar automáticamente un registro de cambios de las confirmaciones.
Editar: Aquí hay otro buen resumen, desde este sitio, incluso: In git, what are some good conventions to format multiple comments to a single commit
No recomendaría mensajes de gran tamaño. Si no puede explicar en una oración lo que está haciendo, su compromiso abarca demasiado cambio. Use git rebase -i y divida su confirmación si ya se ha comprometido. Si aún no ha confirmado los cambios, use git add -p en el escenario en partes pequeñas y luego realice commits más pequeños.
Un historial de cambios granulares como este ayudará a las fusiones y rebases posteriores. También lo ayudará a enlazar con su rastreador de problemas. Si tiene 2 o más tickets abordados, será más difícil descifrar a qué ticket se dirigió cada cambio en la confirmación.
Los cambios no triviales a menudo requieren una explicación sustancial, particularmente si uno está trabajando en un proyecto grande que tiene que preservar la semántica de un documento de especificación externo y/o interno. Tuve que escribir cuatro mensajes de compromiso de párrafo para cambiar una única macro en la fuente de MPICH porque tenía que explicar el comportamiento estándar de MPI Y la macro semántica interna para justificar el cambio. Si no hubiera hecho esto, algún futuro desarrollador desperdiciaría una cantidad excesiva de tiempo redescubriendo esa información. No me gustaría votar si pudiera ... – Jeff
Gracias, @Jeff. El software es un mundo tan grande que realmente no se trata de reglas, sino más bien de directrices. A veces simplemente no es posible aplicarlos. –
Estoy de acuerdo con la idea de compromisos atómicos (que es la razón por la que generalmente no me gusta el aplastamiento). Sin embargo, creo que es mejor equivocarnos al proporcionar más contexto de lo necesario en lugar de menos. Además, si el trabajo no se realizó como confirmaciones atómicas, no recomendaría dividirlas después como sugieres. Esto aumenta el riesgo de cometer un código incompleto. –
- 1. git format-patch sin comprometer
- 2. Script Git commit bash
- 3. Bad commit to Git
- 4. git commit problems
- 5. Git Commit Generation Numbers
- 6. git commit directorio
- 7. revirtiendo push'd git commit
- 8. git commit -a confusion
- 9. git find fat commit
- 10. git: eliminar 2nd commit
- 11. Lost Last Git Commit
- 12. Git commit from python
- 13. Git eliminar commit raíz
- 14. delete first git commit
- 15. git add. vs git commit -a
- 16. Git cómo guardar un registro git preestablecido --format
- 17. Rollback al último git commit
- 18. Git commit hooks: configuración global
- 19. GIT Log o Commit Monitor
- 20. Ganchos commit de submódulo Git
- 21. git: push a single commit
- 22. Referencia Git branch start commit
- 23. Deshacer un commit de git
- 24. Indicando si un commit Git es un commit Merge/Revert
- 25. Cómo mostrar metainformación sobre commit simple en git
- 26. Git post commit: skip --amend y rebase
- 27. ¿Cómo cargo un commit de git específico?
- 28. Usando git commit -a con vim
- 29. Merge GIT branch without commit log
- 30. ¿Cómo inserto un commit usando git?
El prefijo mucho más común para la primera línea es la parte del proyecto al que se aplica la confirmación. Podría ser un nombre de archivo, un módulo, lo que más le convenga. De lo contrario, creo que ya cubriste a los sospechosos habituales. – Cascabel
Tiendo a no saturar mi resumen con ningún metadato (que no sean punteros de error). Compromisos bien escritos con buenos resúmenes son un buen comienzo. siempre puede agregar etiquetas cerca de la parte inferior del resumen para decidir si algo es elegible para notas de la versión. Luego pongo esos en la etiqueta real y [generar mi registro de cambios] (http://dustin.github.com/2009/01/17/changelog.html) desde las etiquetas. :) – Dustin