¿Por qué GitHub me invita a ingresar dos posts de compromiso en lugar de uno solo?

Esta puede ser una pregunta básica, pero pensé que valdría la pena preguntar. En GitHub, cuando agrega un file a un repository haciendo clic en el signo más al lado del nombre del repository, obtiene un área de text donde puede ingresar el contenido del file, seguido de dos posts de confirmación:

enter image description here

Sin embargo, cuando uso git commit -m , solo puedo especificar un post. De ahí mi confusión …

¿La descripción extendida opcional en GitHub termina en el repository o no? Después de clonar el repository de GitHub en cuestión, ¿cómo vería esos posts?

Por lo que yo sé, el git commit solo te permite especificar un post (usando el indicador -m ), pero tal vez me falta algo. ¿Hay alguna manera de especificar un segundo post extendido , de alguna manera?

TL; DR

[…] dos posts de compromiso […]?

¡¿Dos?! No; solo uno. Los contenidos de esos dos campos de text se combinan para producir un solo post de confirmación. GitHub utiliza dos campos de text en lugar de uno solo para engañar a los usuarios a fin de formatear bien sus posts de confirmación.

Detalles

La página man de git-commit tiene una sección titulada Discusión , que contiene las siguientes pautas sobre el formatting preferido de los posts de confirmación:

Aunque no es obligatorio, es una buena idea comenzar el post de compromiso con una sola línea corta (less de 50 caracteres) que resum el cambio, seguida de una línea en blanco y luego una descripción más completa. El text hasta la primera línea en blanco en un post de confirmación se trata como el título de confirmación, y ese título se usa en todo Git.

Cuando un usuario está a punto de crear una confirmación directamente en el sitio de GitHub, se le invita a completar dos campos de text:

  1. El primer campo de text corresponde a la línea corta única (less de 50 caracteres) que resume el cambio .
  2. El segundo campo de text corresponde a la descripción más completa .

Al proporcionar dos campos de text en lugar de uno, GitHub ayuda al usuario a seguir la política de posts de compromiso prescritos. Tenga en count, en particular, que recibirá un post de advertencia si la cantidad de caracteres escritos en el primer cuadro de dialog excede 50:

enter image description here

Si luego ejecuta git fetch en su repository local y git log , verá que el post de confirmación está compuesto por los contenidos de ambos campos de text:

 $ git log commit 0ef92f231cfbf2d4faf8f006e8ba19fc8169c099 Author: Jubobs xxxxxxxxxxxxxx Date: Wed Oct 1 10:39:15 2014 +0100 write 'Hello, World!' - foo - bar - baz 

OK, he clonado el repository de GitHub con "git clone" y ejecutando un "git log" o "git commit –amend" Ahora puedo ver que el post consiste en la primera línea de post de confirmación de 50 caracteres seguida de un espacio seguido por el post extendido opcional.

Gracias.

GitHub ha realizado un magnífico trabajo al "guiar" muchas de las operaciones de Git.

Como ha indicado, el post 'git-m' aquí "proporcionará lo que se conoce como un" post corto "y aparecerá como el título cuando use el git log .

Pero, git admite mucho más text, que se almacena como parte de la confirmación. Eso es lo que GitHub está brindando en ese segundo campo de edición; una oportunidad de agregar un poco más de detalle al post de confirmación. Cuando tenga el repository localmente (como resultado de la git clone de git clone ), podrá ver esos datos 'adicionales' si modifica el resultado del logging (por ejemplo, git log --pretty==fuller ).