git squash在保留作者信息的同时提交

时间:2016-09-26 10:16:28

标签: git

我的同事(让我们在这里叫他约翰),我正在研究一个功能。我们的工作分支如下所示

--o--o--o # this is develop branch
   \   o--o--o # this is John's branch
    \ /       \
     o----o--o--o--o--o--o # this is our cowork branch
      \                 /
       o--o--o--o--o--o  # this is my branch

我们已经完成了我们的工作,并准备合并我们的合作伙伴来开发分支。

此时,cowork分支中有很多提交,预计其他开发人员不会看到这些提交。所以我想把这些提交压缩成一个提交。

但是在压缩(解决一些冲突)之后,我发现作者信息都直接发给我,没有John的信息。

所以我的问题是,在将这些提交组合在一起时,是否有某种方法可以保留John和我的信息?

2 个答案:

答案 0 :(得分:3)

您可以使用commit message conventions来实现类似目的。大多数git客户端都支持此功能,包括GitHub。

具体来说,在提交消息的末尾添加以下内容:

Co-authored-by: John Smith <john.smith@example.com>

您可以有多个共同作者。

答案 1 :(得分:2)

说实话,git缺乏向单个提交添加多个开发人员信息的功能。

然而,有几种方法可以解决它。当你将你的更改从cowork分支合并到develop分支时,它将创建一个Merge提交,在合并之前你可以做类似的事情:

git config user.name "Chris Wilson and John Smith"

有关将多个开发人员信息添加到单个提交的解决方法的详细信息,请参阅here