A maneira como todos os sistemas de controle de versão com os quais estou familiarizado funcionam é que cada commit é atribuído a um único desenvolvedor. O surgimento da Engenharia Ágil e, especificamente, da programação em pares, levou a uma situação em que dois desenvolvedores deram uma contribuição significativa para a mesma tarefa, uma correção de bug, por exemplo.
A questão da atribuição não será um grande problema em um ambiente de trabalho, uma vez que o gerente de projeto estará ciente do trabalho que os pares estão fazendo, mas e se dois contribuidores de código aberto decidirem formar pares e enviar algum código para um projeto específico que não tem ideia de que estão trabalhando juntos. Existe alguma maneira de um sistema de controle de versão como o Git atribuir um patch específico a vários desenvolvedores?
fonte
Respostas:
Um problema com esta abordagem é que você não pode criar uma chave assinada para este grupo de desenvolvedores, então você pode essencialmente adicionar qualquer um a esta lista, mesmo que não funcione em um recurso e o Github o trataria como se funcionasse. No entanto, isso não deve ser um problema na maioria dos casos.
por exemplo
Co-authored-by: Linus Torvalds <[email protected]>
Com autores normais ou grupos de assinatura (o método antigo), você veria que não está assinado e saberia que não pode confiar no commit. No entanto, não há processo de assinatura de co-autores.
Resposta geralmente desatualizada:
Uma solução seria definir um nome para o par:
Aqui está um relatório de bug relacionado com outras soluções temporárias:
Bug git-core: o Git deve oferecer suporte a vários autores para um commit
fonte
git show <COMMIT_ID> --format=email
Uma convenção git é usar Co-Authored-By no final da mensagem de confirmação ( kernel do git: Convenções de Mensagem de Commit , referindo-se a Mensagens de Commit do Openstack ). Essa também é uma das soluções para o bug git-core vinculado à resposta de Gerry
Nesse comentário em 5 de maio de 2010, Josh Triplett também sugere a implementação do suporte correspondente no git.
Como Llopis apontou em um comentário, o GitHub anunciou suporte para isso em seu blog em 29 de janeiro de 2018: Comprometa-se junto com os co-autores ( detalhes ).
fonte
Para Bazar:
Esses nomes serão mostrados no log separadamente do nome do committer.
fonte
git-pair
https://github.com/pivotal/git_scripts#git-pair
Este script simples do Pivotal para automatizar a atribuição de programação de pares Git.
Você cria um
.pairs
arquivo como:e depois:
conjuntos:
para voce.
fonte
git distingue entre um commit
author
ecommitter
[1]. Você pode usá-lo como uma solução alternativa, por exemplo, assine você mesmo como ocommitter
e seu co-autor comoauthor
:Dessa forma, você e seu co-autor serão registrados no histórico do git. Correndo
git log --format=fuller
, vai lhe dar algo como:[1] Diferença entre autor e committer no Git?
fonte
Como alternativa, existe um projeto de código aberto , do qual sou colaborador, no GitHub que oferece uma boa maneira de fazer isso na linha de comando. Este projeto ajuda você a definir um alias para criar commits em coautoria da seguinte maneira:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Usando essa abordagem, você é capaz de criar commits em coautoria sem uma interface gráfica.
fonte
Adicionamos nossos nomes a cada mensagem de confirmação no final como uma convenção, por exemplo:
Implemented cool feature <Aneesh | Hiren>
fonte
Co-Authored-By
que mencionei em uma resposta separadaExperimente o git-mob , nós o construímos para atribuir co-autores aos commits.
Por exemplo
fonte
A maioria das ferramentas de co-autoria não oferece suporte para preenchimento automático. Você pode tentar git-coco , escrito em python3 (eu sou o desenvolvedor).
git-coco
suporta preenchimento automático e sugestão automática. Aqui está um autocompletar instantâneo em autores de amostrafonte