remove - git tag best practices
¿Cómo atribuir un único compromiso a múltiples desarrolladores? (8)
Agregamos nuestros nombres a cada mensaje de confirmación al final como una convención, por ejemplo: Implemented cool feature <Aneesh | Hiren>
Implemented cool feature <Aneesh | Hiren>
La forma en que funcionan todos los sistemas de control de versiones con los que estoy familiarizado es que cada compromiso se atribuye a un único desarrollador. El auge de Agile Engineering, y específicamente la programación de pares, ha llevado a una situación en la que dos desarrolladores han hecho una contribución significativa a la misma tarea, una corrección de errores, por ejemplo.
El tema de la atribución no será demasiado importante en un entorno de trabajo, ya que el director del proyecto estará al tanto del trabajo que están haciendo los pares, pero ¿qué pasa si dos contribuidores de código abierto deciden unirse y extraer algún código? a un proyecto en particular que no tiene idea de que están trabajando juntos. ¿Hay alguna manera de que un sistema de control de versiones como Git pueda atribuir un parche en particular a múltiples desarrolladores?
Alternativamente, hay un proyecto de código abierto en GitHub que proporciona una buena forma de hacerlo desde la línea de comando. Este proyecto te ayuda a establecer un alias para crear confirmaciones co-autorizadas de la siguiente manera:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Al usar este enfoque, puede crear confirmaciones de coautoría sin una interfaz gráfica.
Creo que a git le falta esa característica. Sin embargo, git distingue entre el author
un commit y el committer
[1]. Puede usarlo como una solución alternativa, por ejemplo, firme usted mismo como el autor y su coautor como author
:
GIT_COMMITTER_NAME=''a'' GIT_COMMITTER_EMAIL=''a@a'' git commit --author ''b <b@b>''
De esta forma, tanto usted como su coautor serán registrados en el historial de git. Ejecutar git log --format=fuller
, le dará algo como:
commit 22ef837878854ca2ecda72428834fcbcad6043a2
Author: b <b@b>
AuthorDate: Tue Apr 12 06:53:41 2016 +0100
Commit: a <a@a>
CommitDate: Tue Apr 12 09:18:53 2016 +0000
Test commit.
Para Bazar:
bzr commit --author Joe --author Alice --author Bob
Esos nombres se mostrarán en el registro por separado del nombre del committer.
Una convención de git es usar Co-Authored-By al final del mensaje de confirmación ( git kernel: Commit Message Conventions , refiriéndose a Openstack Commit Messages ). Esta es también una de las soluciones en el error de git-core vinculado en la respuesta de Gerry
Co-authored-by: Some One <[email protected]>
En ese comentario del 5 de mayo de 2010, Josh Triplett también sugiere implementar el soporte correspondiente en git.
Como señaló Llopis en un comentario, GitHub anunció su apoyo en su blog el 29 de enero de 2018: Comprometerse con los coautores ( details ).
Una solución sería establecer un nombre para el par:
git config user.name "Chris Wilson and John Smith"
Aquí hay un informe de error relacionado con otras soluciones temporales:
Bug git-core: Git debería admitir múltiples autores para un commit
Pruebe git-mob , lo construimos para atribuir co-authors en commits.
P.ej
git mob <initials of co-authors>
git commit
git solo
git-pair
https://github.com/pivotal/git_scripts#git-pair
Este sencillo script de Pivotal para automatizar la atribución de programación de pares de Git.
Usted crea un archivo .pairs
como:
# .pairs - configuration for ''git pair''
pairs:
# <initials>: <Firstname> <Lastname>[; <email-id>]
eh: Edward Hieatt
js: Josh Susser; jsusser
sf: Serguei Filimonov; serguei
email:
prefix: pair
domain: pivotallabs.com
# no_solo_prefix: true
#global: true
y entonces:
git pair sp js
conjuntos:
user.name=Josh Susser & Sam Pierson
[email protected]
para ti.