Подтвердить что ты не робот

Как приписать один коммит нескольким разработчикам?

Как все системы управления версиями, с которыми я знаком с работой, - это то, что каждая фиксация относится к одному разработчику. Рост Agile Engineering и, в частности, парного программирования привел к ситуации, когда два разработчика внесли значительный вклад в одну и ту же задачу, например, исправление ошибок.

Проблема атрибуции не будет слишком большой проблемой в рабочей среде, поскольку менеджер проекта будет знать о работе, выполняемой парами, но как насчет того, чтобы два участника с открытым исходным кодом решили соединить и нажать вывести какой-то код в конкретный проект, который не знает, что они работают вместе. Есть ли способ для системы управления версиями, такой как Git, приписывать конкретный патч нескольким разработчикам?

4b9b3361

Ответ 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>"

Используя этот подход, вы можете создавать соавторы коммитов без графического интерфейса.