2010-08-16 9 views
12

Tengo la sensación de que casi todo el mundo usa un editor (Vim, Notepad ++, etc.) para los mensajes de confirmación de Git. ¿Por qué?¿Por qué debería usar un editor para los mensajes de confirmación de Git?

Me parece que escribir -m y un par de citas es fácil y proporciona una manera fácil de rehacer una confirmación (presionando la flecha hacia arriba). Supongo que es más fácil hacer mensajes de compromiso de varias líneas en un editor, pero me cuesta convencer a mis compañeros de trabajo para que escriban cualquier mensaje!

Respuesta

17

Usted mencionó que lo más importante - la longitud. Los mensajes de confirmación deben ser esencialmente siempre ser multilíneas. Las únicas excepciones son compromisos triviales (por ejemplo, "número de versión tropezada a X.X.X") o se fusiona sin conflictos (aunque incluso entonces, agregar un shortlog no es una mala idea). El compromiso promedio, en la medida en que tal cosa existe, probablemente debería tener una o dos oraciones más allá del sujeto; algunos incluso podrían tener párrafos. Solo mira el log of git.git; es más que garantizado que es un buen ejemplo del estilo y duración de los mensajes de confirmación.

Me doy cuenta de que puede ser difícil convencer a otros para que escriban buenos mensajes de confirmación, pero eso no significa que no pueda hacerlo, y probablemente le resultará más fácil usar un editor para escribirlos.

(I tienen exactamente la misma experiencia en mi lugar de trabajo. Mis compañeros de trabajo son los ingenieros de primera, segunda, programadores y usuarios de control de versiones ... tercera sería generoso. Pero al menos puede hacer su derecha trabajo!)

+0

No veo el beneficio. Miró su ejemplo 'log de git.git'. Definitivamente es prolijo, pero la mayoría parece redundante. Por supuesto que no trabajo en Git. –

+2

@Pat: Definitivamente hay algo de redundancia, ¿pero "la mayoría"? Puedo leer esos mensajes de compromiso y tener una muy buena idea de lo que significa cada uno * sin mirar el código *. Sí, todo el mensaje de confirmación es redundante si asumes que ya entiendes todo el código y puedes leerlo al instante ... – Cascabel

+0

@Pat: Creo que probé un poco difícil de discutir en ese comentario. Lo que se reduce a esto es el hecho de que la documentación es una buena idea. Podemos debatir exactamente cuánto, pero un compromiso representa un conjunto de trabajo, es necesaria alguna explicación de ese trabajo, y para cualquier cosa compleja, la explicación probablemente no sea de 50 caracteres o menos. – Cascabel

2

En un editor puede escribir mensajes más largos, qué formato, como justificar a 80 columnas, etc Tal vez usted tiene una plantilla para los mensajes de confirmación que copiar y pegar. Puede hacer estas cosas en los editores de texto.

+0

No es necesario copiar la plantilla, ya que git admite las plantillas de mensaje de confirmación (y muchos editores también son compatibles con las plantillas). –

1

empecé a aprender vim configurándola como mi editor por defecto para Mercurial; me obligó a conocer al menos los comandos básicos si quería hacer algo. Ahora uso vim todo el tiempo.

7

Algunas personas tienen convenciones, such as the following:

cortas (50 caracteres o menos) resumen de los cambios

más detallada texto explicativo, si necesario. Envuélvalo a unos 72 caracteres o menos. En algunos contextos, la primera línea se trata como el objeto de un correo electrónico y el resto de el texto como el cuerpo. La línea en blanco separar el resumen del cuerpo es crítico (a menos que se omite por completo el cuerpo ); herramientas como rebase pueden confundir a si ejecuta los dos juntos.

Escriba su mensaje de compromiso en el presente: "Corregir error" y no "Error reparado". Esta convención coincide se comprometen con los mensajes generados por comandos como git merge y git de revertir.

Otros párrafos vienen después de líneas en blanco .

- Las viñetas están bien, también

- Normalmente, un guión o un asterisco se utiliza para la bala, precedido por un único espacio
, con líneas en blanco en entre, pero convenciones varían aquí

- Utilice una sangría de suspensión

Buena suerte haciendo eso sin usar un editor.

8

Un mensaje de confirmación de git adecuado debería ser casi siempre de varias líneas. De the official git-commit discussion,

Aunque no se requiere, que es una buena idea para comenzar el mensaje de confirmación con un única corta (menos de 50 caracteres) línea que resume el cambio, seguido por una línea en blanco y luego una más descripción completa. Las herramientas que activan correos electrónicos, por ejemplo, usan la primera línea del Asunto: línea y el resto de la confirmación en el cuerpo .

Si usted está teniendo dificultades para conseguir cualquier mensajes de confirmación, (hable con su administrador de sistemas y/o) asegurarse de que al menos uno de la variable de entorno GIT_EDITOR, la variable de configuración core.editor, el entorno visual variable, o la variable de entorno EDITOR se establece en algo útil.

Una opción sería crear su propio "editor", que solicita una descripción corta (< 50 caracteres), y luego un número mínimo de caracteres u oraciones. Esto podría no ser bien recibido, pero eso dependería de su posición y la cultura de su entorno de trabajo.

+0

Las personas siempre pueden anular las variables de entorno o usar el editor para escribir un mensaje de una línea como lo hacen normalmente. Si realmente quiere tratar de hacer cumplir esto, en lugar de simplemente convencer a la gente de que es en su propio interés, la forma de hacerlo sería un gancho. Como mínimo, imprima una advertencia fuerte cuando alguien presione un mensaje de compromiso de una línea. Si envían una docena de confirmaciones, todas con mensajes de una línea, creo que tienes derecho a que la inserción falle. – Cascabel

+1

@Jefromi: si las personas están anulando intencionalmente variables de entorno para evitar seguir una política, ¡entonces tienes un problema mayor en tus manos! –

+0

En realidad, es un punto discutible: el editor no abrirá en absoluto si alguien especifica un mensaje con 'git commit -m'. No estoy seguro de por qué no me di cuenta de eso inmediatamente. Entonces, si la gente solo quiere escribir mensajes cortos, simplemente seguirán usando 'commit -m' como siempre lo hicieron, y no habrá ganancia.La gente realmente no piensa en eso como algo que evita la política; lo consideran como evitar la molestia de los pasos adicionales, un editor, tener que descifrar algo para escribir ... Es un problema bastante grande, sí, pero suponiendo que la gente no esté Ya estás escribiendo buenos mensajes, es un problema que tienes. – Cascabel

Cuestiones relacionadas