Как приписать один коммит нескольким разработчикам?
Как все системы управления версиями, с которыми я знаком с работой, - это то, что каждая фиксация относится к одному разработчику. Рост Agile Engineering и, в частности, парного программирования привел к ситуации, когда два разработчика внесли значительный вклад в одну и ту же задачу, например, исправление ошибок.
Проблема атрибуции не будет слишком большой проблемой в рабочей среде, поскольку менеджер проекта будет знать о работе, выполняемой парами, но как насчет того, чтобы два участника с открытым исходным кодом решили соединить и нажать вывести какой-то код в конкретный проект, который не знает, что они работают вместе. Есть ли способ для системы управления версиями, такой как Git, приписывать конкретный патч нескольким разработчикам?
Ответы
Ответ 1
Commit title
Commit body
Co-Authored-By: name <[email protected]>
Co-Authored-By: name <[email protected]>
Поддерживается Github: https://github.blog/2018-01-29-commit-together-with-co-authors/ Все еще жду Gitlab: https://gitlab.com/gitlab-org/gitlab-ce/issues/31640 Используется другими: https://git.wiki.kernel.org/index.php/CommitMessageConventions
Одна из проблем этого подхода заключается в том, что вы не можете создать подписанный ключ для этой группы разработчиков, поэтому вы можете добавить кого-нибудь в этот список, даже если они не работают с какой-либо функцией, и github будет обрабатывать ее так, как если бы они это делали. Однако это не должно быть проблемой в большинстве случаев.
например, Co-Authored-By: Linus Torvalds <[email protected]>
С обычными авторами или подписывающими группами (старый метод) вы увидите, что он не подписан, и знаете, что вы не можете доверять коммиту. Однако нет никакого процесса подписания соавторов.
В основном устаревший ответ:
Одним из решений было бы установить имя для пары:
git config user.name "Chris Wilson and John Smith"
Вот связанный отчет об ошибках с другими временными решениями:
Ошибка git-core: Git должен поддерживать нескольких авторов для коммита
Ответ 2
Соглашение git заключается в использовании Co-Authored-By в конце сообщения фиксации (ядро git: Соглашения о сообщении коммитов, ссылающиеся на сообщения фиксации Openstack). Это также одно из решений проблемы git-core, связанной с ответом Джерри.
Co-authored-by: Some One <[email protected]>
В этом комментарии от 5 мая 2010 года Джош Триплетт также предлагает реализовать соответствующую поддержку в git.
Как отметил в своем комментарии Llopis, GitHub объявил о поддержке этого в своем блоге 29 января 2018 года: Commit совместно с соавторами (подробности).
Ответ 3
Для базара:
bzr commit --author Joe --author Alice --author Bob
Эти имена будут отображаться в журнале отдельно от имени коммиттера.
Ответ 4
ГИТ-пара
https://github.com/pivotal/git_scripts#git-pair
Этот простой скрипт от Pivotal для автоматизации атрибуции Git-пары.
Вы создаете файл .pairs
например:
# .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
а потом:
git pair sp js
наборы:
user.name=Josh Susser & Sam Pierson
[email protected]
для тебя.
Ответ 5
git различает author
коммита и committer
[1]. Вы можете использовать его в качестве обходного пути, например, подписать себя в качестве committer
и своего соавтора в качестве author
:
GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='[email protected]' git commit --author 'b <[email protected]>'
Таким образом, и вы, и ваш соавтор будут записаны в историю Git. Запуск git log --format=fuller
, даст вам что-то вроде:
commit 22ef837878854ca2ecda72428834fcbcad6043a2
Author: b <[email protected]>
AuthorDate: Tue Apr 12 06:53:41 2016 +0100
Commit: a <[email protected]>
CommitDate: Tue Apr 12 09:18:53 2016 +0000
Test commit.
[1] Разница между автором и коммиттером в Git?
Ответ 6
Мы добавляем наши имена к каждому сообщению фиксации в конце в качестве соглашения
например: Implemented cool feature <Aneesh | Hiren>
Ответ 7
Попробуйте git-mob, мы создали его для приписывания соавторов к коммитам.
Например
git mob <initials of co-authors>
git commit
git solo
Ответ 8
В качестве альтернативы, на GitHub есть проект с открытым исходным кодом, который предоставляет хороший способ сделать это из командной строки. Этот проект помогает вам установить псевдоним, чтобы создать совлокальные коммиты следующим образом:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Используя этот подход, вы можете создавать соавторы коммитов без графического интерфейса.