¿Para qué sirve la función de apagado en git?

¿Cuál es el punto de la función de salida en git ?

 git commit --signoff 

¿Cuándo debo usarlo, en todo caso?

400
26 дек. Clark Gaebel se establece el 26 de diciembre 2009-12-26 01:30 '09 a la 1:30 am 2009-12-26 01:30
@ 4 respuestas

Extraer es un requisito para obtener correcciones en el kernel de Linux y en varios otros proyectos, pero la mayoría de los proyectos no lo usan.

Esto se introdujo después de la demanda de SCO , (y otras acusaciones de infracción de derechos de autor de la SCO , la mayoría de las cuales nunca aceptaron en los tribunales), como el Certificado de origen de los desarrolladores . Se utiliza para indicar que confirma que creó la solución, o que confirma que, por lo que sabe, se creó bajo una licencia de código abierto correspondiente, o que alguien más se la proporcionó en estas condiciones. Esto puede ayudar a crear una cadena de personas que asumen la responsabilidad del estado de copyright de este código para garantizar que el código de copyright que no se publica bajo la licencia de software libre (fuente abierta) no esté incluido en el núcleo.

392
26 дек. La respuesta la da Brian Campbell el 26 de diciembre. 2009-12-26 01:39 '09 a la 1:39 2009-12-26 01:39

La salida es la cadena al final del mensaje de confirmación, que identifica quién es el autor de la confirmación. Su objetivo principal es mejorar el seguimiento de quién hizo qué, especialmente con las correcciones.

Ejemplo:

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> 

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

border=0

Si un desarrollador de sucursales necesita modificar los parches un poco para fusionarlos, puede pedirle al remitente que repita, pero esto será contraproducente. Puede corregir el código y ponerlo al final para que el autor aún obtenga un préstamo para el parche, y no para los errores ingresados.

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> [uber.dev@gmail.com: renamed methods according to naming conventions.] Signed-off-by: Uber Developer <uber.dev@gmail.com> 

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

45
26 дек. Hoto respondió el 26 de diciembre 2012-12-26 20:36 '12 a las 8:36 pm 2012-12-26 20:36

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

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

 -s:: --signoff:: 

Agregue la línea de salida firmada por el Signed-off-by al final del mensaje de registro de confirmación.
El valor de firma depende del proyecto, pero generalmente confirma que el autor tiene los derechos para enviar este trabajo bajo una licencia y está de acuerdo con el certificado de desarrollador de Origin (consulte http://developercertificate.org/ para obtener más información).


Ampliar la documentación que describe --signoff

Modifique los diversos documentos (páginas de manual) para explicar con más detalle lo que significa --signoff .

Esto se inspiró en el " artículo de la vid" Bottomley: una propuesta modesta para DCO " (certificado de desarrollador de origen), donde Paul señaló

El problema con el DCO es que agregar un argumento << 27> a git commit no significa que haya oído hablar del DCO ( t22> man no menciona el DCO en ninguna parte ), no importa lo que vea.

Entonces, ¿de qué manera la presencia de " Signed-off-by " implica que el remitente acepta y transmite el DCO? Conjuntamente con el hecho, vi las respuestas a las listas en los parches sin SOB, que dicen nada más que "Envíelo utilizando Signed-off-by para que pueda hacerlo".

La extensión de la documentación de git simplificará la afirmación de que los desarrolladores entienden --signoff cuando lo usan.


Tenga en cuenta que este mensaje está ahora (para git 2.15.x / 2.16, Q1 2018) disponible para git pull .

Ver commit 3a4d2c7 (12 de octubre de 2017) W. Trevor King ( wking ) .
(la fusión de Junio ​​S Hamano - gitster - in commit fb4cd88 , 06 de noviembre de 2017

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

fusionar puede tomar --signoff , pero sin tirar hacia abajo --signoff es un inconveniente de usar; Permita que ' pull ' para tomar la opción y pasarla.

21
06 февр. La respuesta se da VonC 06 Feb. 2016-02-06 09:22 '16 a las 9:22 AM 2016-02-06 09:22

Hay algunas buenas respuestas a esta pregunta. Intento agregar otra respuesta amplia, a saber, cuáles son los tipos de líneas / encabezados / remolques en la práctica moderna. No hay mucho en el título (no es el único).

Los encabezados o remolques (↑ 1), como "shutdown" (↑ 2), en la práctica actual en proyectos como Git y Linux, son metadatos estructurados de manera efectiva para confirmar. Todos ellos se agregan 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 fichas (o valor clave), que generalmente se limitan a dos puntos y un espacio ( :␣ ).

Como mencioné, el "cierre" no es el único tráiler en la práctica actual. Vea por ejemplo este compromiso , que está asociado 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 <kernel@linuxace.com> Acked-by: Hugh Dickins <hughd@google.com> Reviewed-by: Michal Hocko <mhocko@suse.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Kees Cook <keescook@chromium.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Willy Tarreau <w@1wt.eu> Cc: Nick Piggin <npiggin@gmail.com> Cc: Greg Thelen <gthelen@google.com> Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> 

Además del tráiler de aprobación en el ejemplo anterior, hay:

  • "Cc" (fue notificado del parche)
  • "Acked-by" (confirmado por el propietario del código, "me parece bien")
  • "Verificado" (visto)
  • "Enviado y verificado" (reportado y verificado el problema (supongo))

Otros proyectos, como, por ejemplo, Gerrit, tienen sus propios títulos y significado asociado.

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

Moraleja de la historia

Me dio la impresión de que, aunque la motivación inicial para estos metadatos específicos eran algunas preguntas legales (a juzgar por otras respuestas), la práctica de tales metadatos progresó con respecto al caso de la formación de la cadena del autor.

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

3
15 дек. La respuesta la da Guildenstern el 15 de diciembre. 2016-12-15 16:06 '16 a las 16:06 2016-12-15 16:06

Otras preguntas sobre las etiquetas o Haz una pregunta