tipos tener tag sirve remove qué proyecto podemos para oneline nuestros nos mayor log herramienta hacer hace existen etiquetas cuando creamos control git git-commit

tag - ¿qué herramienta podemos hacer para tener un mayor control de nuestros proyecto en github?



¿Para qué sirve la función de cierre de sesión en Git? (4)

El cierre de sesión es un requisito para obtener parches en el kernel de Linux y algunos otros proyectos, pero la mayoría de los proyectos no lo usan.

Fue presentado a raíz de la demanda de SCO , (y otras acusaciones de infracción de derechos de autor de SCO , la mayoría de las cuales nunca llevaron a los tribunales), como un Certificado de Origen de Desarrolladores . Se utiliza para decir que usted certifica que ha creado el parche en cuestión, o que certifica que, según su leal saber y entender, se creó con una licencia de código abierto apropiada, o que alguien lo ha proporcionado. más bajo esos términos. Esto puede ayudar a establecer una cadena de personas que asumen la responsabilidad del estado de copyright del código en cuestión, para ayudar a garantizar que el código protegido por derechos de autor no publicado bajo una licencia apropiada de software libre (código abierto) no esté incluido en el núcleo.

¿Cuál es el punto de la característica de inicio de sesión en Git ?

git commit --signoff

¿Cuándo debo usarlo, en todo caso?


El cierre de sesión es una línea al final del mensaje de confirmación que certifica quién es el autor de la confirmación. Su objetivo principal es mejorar el seguimiento de quién hizo qué, especialmente con parches.

Ejemplo de cometer:

Add tests to statement printer. Signed-off-by: Super Developer <[email protected]>

Debe contener el nombre real del usuario si se usa para un proyecto de código abierto.

Si el mantenedor de rama necesita modificar ligeramente los parches para fusionarlos, puede pedirle al remitente que redima, pero sería contraproducente. Puede ajustar el código y poner su aprobación al final para que el autor aún reciba crédito por el parche y no por los errores introducidos.

Add tests to statement printer. Signed-off-by: Super Developer <[email protected]> [[email protected]: Renamed test methods according to naming convention.] Signed-off-by: Uber Developer <[email protected]>

Fuente: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html


Hay algunas respuestas agradables sobre esta pregunta. Trataré de agregar una respuesta más amplia, a saber, de qué se trata este tipo de líneas / encabezados / remolques en la práctica actual. No tanto sobre el encabezado de cierre de sesión en particular (no es el único).

Los encabezados o tráilers (↑ 1) como "firma" (↑ 2) son, en la práctica actual en proyectos como Git y Linux, metadatos efectivamente estructurados para el compromiso. Todos estos se adjuntan al final del mensaje de confirmación, después de la parte de "forma libre" (no estructurada) del cuerpo del mensaje. Estos son pares de valor de token (o valor de clave ) típicamente delimitados por dos puntos y un espacio ( :␣ ).

Como mencioné, la "aprobación" no es el único avance en la práctica actual. Vea, por ejemplo, este compromiso , que tiene que ver con "Vaca Sucia":

mm: remove gup_flags FOLL_WRITE games from __get_user_pages() This is an ancient bug that was actually attempted to be fixed once (badly) by me eleven years ago in commit 4ceb5db9757a ("Fix get_user_pages() race for write access") but that was then undone due to problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug"). In the meantime, the s390 situation has long been fixed, and we can now fix it by checking the pte_dirty() bit properly (and do it better). The s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement software dirty bits") which made it into v3.9. Earlier kernels will have to look at the page state itself. Also, the VM has become more scalable, and what used a purely theoretical race back then has become easier to trigger. To fix it, we introduce a new internal FOLL_COW flag to mark the "yes, we already did a COW" rather than play racy games with FOLL_WRITE that is very fundamental, and then use the pte dirty flag to validate that the FOLL_COW flag is still valid. Reported-and-tested-by: Phil "not Paul" Oester <[email protected]> Acked-by: Hugh Dickins <[email protected]> Reviewed-by: Michal Hocko <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: Kees Cook <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Willy Tarreau <[email protected]> Cc: Nick Piggin <[email protected]> Cc: Greg Thelen <[email protected]> Cc: [email protected] Signed-off-by: Linus Torvalds <[email protected]>

Además del tráiler de "aprobación" en lo anterior, hay:

  • "Cc" (fue notificado sobre el parche)
  • "Acked-by" (reconocido por el propietario del código, "me parece bien")
  • "Revisado por" (revisado)
  • “Reportado y probado por” (informé y probé el problema (supongo))

Otros proyectos, como por ejemplo Gerrit, tienen sus propios encabezados y significado asociado para ellos.

Consulte: https://git.wiki.kernel.org/index.php/CommitMessageConventions

Moraleja de la historia

Tengo la impresión de que, aunque la motivación inicial para estos metadatos en particular fueron algunos problemas legales (a juzgar por las otras respuestas), la práctica de tales metadatos ha progresado más allá de simplemente tratar el caso de formar una cadena de autoría.

[↑ 1]: man git-interpret-trailers
[↑ 2]: a veces también se les llama "sollozo" (iniciales), parece.


git 2.7.1 (febrero de 2016) aclara que en commit b2c150d (05 de enero de 2016) por David A. Wheeler ( david-a-wheeler ) .
(Fusionada por Junio ​​C Hamano - gitster - in commit 7aae9ba , 05 de febrero de 2016)

git commit página de manual de git commit ahora incluye:

-s:: --signoff::

Agregue la línea Signed-off-by por el interlocutor al final del mensaje de registro de confirmación.
El significado de una firma depende del proyecto, pero generalmente certifica que Committer tiene los derechos para enviar este trabajo bajo la misma licencia y acepta un Certificado de origen de desarrollador (consulte https://developercertificate.org para obtener más información).

Ampliar la documentación que describe --signoff

Modifique varios archivos de documento (página de manual) para explicar con más detalle lo que significa --signoff .

Esto se inspiró en el " artículo de lwn ''Bottomley: Una propuesta modesta sobre el DCO'' " (Certificado de origen del desarrollador) donde paulj señaló:

El problema que tengo con el DCO es que agregar un argumento " -s " a git commit no significa que hayas oído hablar del DCO ( la página de manual de git commit no menciona al DCO en ningún lugar ), no importa en realidad eso.

Entonces, ¿cómo puede la presencia de " signed-off-by " implicar de alguna manera que el remitente está de acuerdo y comprometiéndose con el DCO? Combinado con el hecho, he visto respuestas en las listas de parches sin SOB que no dicen nada más que "Reenviar esto con una autorización de confirmación para que pueda confirmarlo".

Extender la documentación de git hará que sea más fácil argumentar que los desarrolladores entendieron --signoff cuando lo usan.

Tenga en cuenta que esta firma ahora (disponible para Git 2.15.x / 2.16, Q1 2018) también está disponible para git pull .

Ver commit 3a4d2c7 (12 de octubre de 2017) por W. Trevor King ( wking ) .
(Fusionado por Junio ​​C Hamano - gitster - in commit fb4cd88 , 06 de noviembre de 2017)

pull : pass --signoff/--no-signoff para " git merge "

fusionar puede tomar --signoff , pero sin pasar de pasar --signoff , es un inconveniente de usar; Permitir '' pull '' para tomar la opción y pasarla.