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

Ale*_*lex 9 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
Run Code Online (Sandbox Code Playgroud)

我们已经完成工作,并准备合并我们的同事以开发分支机构。

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

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

因此,我的问题是,在将这些提交合并在一起时,是否可以保留John和我的信息?

Wil*_*ill 12

您可以通过使用提交消息约定来实现类似的功能。大多数 git 客户端都支持这一点,包括 GitHub。

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

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

通过多次包含此行,您可以拥有多个共同作者。


unr*_*007 4

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

但是,有几种方法可以解决这个问题。当您将合并从 cowork 分支到开发分支的更改时,它将创建一个合并提交,在合并之前您可以执行以下操作:

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

请参阅此处,了解有关将多个开发人员信息添加到单个提交的解决方法的更多信息。