0

对于我的 github 存档,我收到了一个 pull request,我想在合并之前先对其进行测试,因此使用了 github 推荐的命令行命令(contrib1 代表贡献者的用户名,patch1 代表 pull request 的名称,repo 名称存储库的)

   git checkout -b contrib1-patch1 master
   git pull https://github.com/contrib1/repo.git patch1

因为我事先做了一些更改,所以解决了一个(微不足道的)合并冲突,我通过编辑 file1. 该补丁还包括对其他文件file2的非冲突更改,...

然后我再次按照github的建议:

   git add file1
   git checkout master
   git merge --no-ff contrib1-patch1
   git push origin master

合并命令导致一条消息“已经是最新的”,然后我发现我忽略了先提交,所以基本上重复了这个过程:

   git commit -m "Implements patch1 by contrib1" repo
   git checkout master
   git merge --no-ff contrib1-patch1
   git push origin master

同样,git merge --no-ff导致消息“已经是最新的”。存储库现在是正确的,但我认为自己是所有文件更改的发起者,而不仅仅是冲突的行,从将功劳分配给外部贡献者的角度来看,我觉得这是不好的。

问题是我下次应该使用什么命令序列来避免这种情况并确保补丁作者显示在责备或历史视图中?请注意,我并不关心更改上述补丁的历史记录,我只想为下一个补丁做正确的事。如果我没有犯忘记commit(显然是“本地”问题)的错误,很可能会出现同样的问题,但万一这很重要,我觉得我应该报告它。

4

1 回答 1

1

使用git rebase -i然后设置提交的原始作者通过

 git commit --amend --author "Original Author Name <email@address.com>" 

有关如何在此处更改作者的更多详细信息。从记忆中,有一些额外的箍可以跳过以更改合并提交的作者身份,但是鉴于您进行了合并,这似乎没问题。

于 2015-12-06T18:54:56.217 回答