Как приписать одну фиксацию нескольким разработчикам?
кстати все системы управления версиями я знаком с работой заключается в том, что каждый коммит относится к одному разработчику. Рост гибкой инженерии, и особенно парного программирования, привел к ситуации, когда два разработчика внесли значительный вклад в одну и ту же задачу, например, исправление ошибок.
проблема атрибуции не будет слишком большой проблемой в рабочей среде, так как менеджер проекта будет знать о работе, которую делают пары, но что о том, если два участника с открытым исходным кодом решат объединиться и вытолкнуть некоторый код в конкретный проект, который понятия не имеет, что они работают вместе. Есть ли способ для системы управления версиями, такой как Git, приписать конкретный патч нескольким разработчикам?
8 ответов:
одним из решений было бы установить имя для пары:
git config user.name "Chris Wilson and John Smith"
вот связанный отчет об ошибке с другими временными решениями:
ошибка git-core: Git должен поддерживать несколько авторов для фиксации
соглашение git должно использовать В Соавторстве-С В конце сообщения фиксации (ядро git: соглашения о фиксации сообщений, обращаясь к Сетевая Сообщения). Это тоже одно из решений на ошибка git-core связаны Джерри
Co-authored-by: Some One <some.one@example.foo>
в этом комментарии от 5 мая 2010 года Джош Триплетт также предлагает реализовать соответствующую поддержку в git.
Как исследователь указал в комментарии, GitHub объявил о поддержке этого в своем блоге 29 января 2018 года:совершить вместе с соавторами (подробности).
Для Базара:
bzr commit --author Joe --author Alice --author Bob
эти имена будут отображаться в журнале отдельно от имени коммиттер.
git-pair
https://github.com/pivotal/git_scripts#git-pair
этот простой скрипт от Pivotal для автоматизации атрибуции парного программирования Git.
создать как:
# .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 user.email=pair+jsusser+sam@pivotallabs.com
для вас.
Я думаю, что Git не хватает такой функции. Однако git различает фиксацию
author
иcommitter
[1]. Вы можете использовать его в качестве обходного пути, например, подписать себя какcommitter
и ваш соавтор какauthor
:GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a@a' git commit --author 'b <b@b>'
таким образом, и вы, и ваш соавтор будут записаны в истории git. Работает
git log --format=fuller
, подарит вам что-то вроде: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.
мы добавляем наши имена к каждому сообщению фиксации в конце как соглашение например :
Implemented cool feature <Aneesh | Hiren>
попробуйте git-mob, мы построили его для атрибуции соавторов на коммиты.
например.
git mob <initials of co-authors> git commit git solo
кроме того, есть проект с открытым исходным кодом на GitHub, который обеспечивает хороший способ сделать это из командной строки. Этот проект поможет вам установить псевдоним для создания совместно авторизуемых коммитов следующим образом:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
используя этот подход, вы можете создавать соавторские коммиты без графического интерфейса.