将一个提交归因于多个开发人员
我熟悉的所有版本控制系统的工作方式是每个提交都归属于一个开发人员。 敏捷工程的兴起,特别是结对编程,已经导致了两个开发人员为同样的任务作出了重大贡献的情况,例如错误修复。
在工作环境中,归因问题不会太大,因为项目经理会意识到配对正在进行的工作,但如果两个开源贡献者决定配对并推出一些代码,怎么办?到一个不知道他们在一起工作的特定项目。 Git等版本控制系统有没有办法将特定的补丁分配给多个开发人员?
一种解决方法是为这一对设置一个名字:
git config user.name "Chris Wilson and John Smith"
这是一个与其他临时解决scheme相关的错误报告:
Bug git-core:Git应该支持多个作者进行提交
市集:
bzr commit --author Joe --author Alice --author Bob
这些名称将在提交者名称中与日志分开显示。
git-pair是一个来自Pivotal的自动化Git Pair编程归因的简单脚本。
你创build一个.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 user.email=pair+jsusser+sam@pivotallabs.com
为你。
git约定是在提交消息( git kernel:Commit Message Conventions ,引用Openstack提交消息 )的末尾使用Co-Authored-By 。 这也是Gerry的答案中关于git-core bug 的解决scheme之一
Co-authored-by: Some One <some.one@example.foo>
在2010年5月5日的评论中,Josh Triplett也build议在git中实施相应的支持。
我认为git缺乏这样的function。 但是,git区分了提交的author
和committer
[1]。 你可以使用它作为解决方法,例如签署你自己作为committer
和你的共同作者作为author
:
GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a@a' git commit --author 'b <b@b>'
这样,你和你的合着者都将被logging在git历史logging中。 运行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.
[1] 作者和提交者在Git中的区别?
我们将每个提交消息的名称作为约定添加到末尾,例如: Implemented cool feature <Aneesh | Hiren>
Implemented cool feature <Aneesh | Hiren>