我发现在GitHub中缺少这个功能很令人沮丧,所以我在此记录我的解决方法,以帮助下一个人。欢迎提供其他更好的解决方法。
这个问题不是与如何在GitHub中更改提交作者?重复...因为那个问题并没有明确说明它是否在问如何重写几个提交的作者然后将它们推送到GitHub,还是实际上更改首次创建整个PR的名称。而且,那个问题的被接受答案只是简单修复了本地.git/config
文件,显然无法解决我在这里谈论的GitHub问题。
在GitHub PR的顶部,你会看到类似这样的东西:
用户名
想要从其特性分支
合并1
个提交到基本分支
那个用户名
:我们该怎么改变它?
随机选择的示例PR(从GitHub中选择)仅用于显示下面图像中的PR作者行。图片:
示例用例:
- 开此PR的团队成员刚刚离开公司,我们希望接管并完成他们的PR。
- 工作负载的变化使得你需要从另一个团队成员那里接管部分完成的PR。你如何将该PR切换为你的名字?
假设每个人都可以完全访问整个repo,这意味着你可以相互推送/拉取彼此的分支。
我想知道如何更改打开的PR所有者的真实例子
在2020年,我同事在一个全新的分支上开了一个PR,打算在3个月内对其进行大量功能开发。然后,将会合并它。随着每个小PR进入这个独立的长期运行的分支,将进行同行评审。
最初,PR带有“不要审核”标签,只是为了让我们的CI(持续集成)系统开始每天构建它以确保它没有问题。然后,我们所有人都会贡献到这个分支,理解到开此PR的人会成为“流程负责人”,并将该分支走过所有的测试和流程,直到将其合并回主分支。
然后,我的同事在开此PR后不久就离开了公司。我立即成为流程负责人,并为此PR工作了3个月,最终将其合并。该repo由维护者设置为禁用除“压缩合并”以外的所有合并类型(请参见本问题下面的我的评论),因此当它被合并时,GitHub将所有几十个单独提交都压缩到一个巨大的提交中,并附加我的同事的名字(请记住他在过去3个月里已经离开了公司)到那个提交中,尽管
164 files changed, 10360 insertions(+), 3013 deletions(-)
意思是那个提交触及了164个文件,增加了10360行,删除了3013行。 而猜猜看!?我的同事的名字出现在所有这些更改中,只是因为他最初“打开了PR”,而不是我的名字,尽管其中很多工作是我的,我是其过程所有者。 至少可以说很令人困惑。 我希望我的名字出现在所有这些更改的行上。
因此,我的答案就是我当时应该做的但没有做的,因为我不知道GitHub总是使用打开PR的人的姓名,也不知道如何更改PR的所有者。 现在,我知道了,并在我的答案中记录了我的解决方法。
我实际上所做的是我的答案中的选项1,但我应该采取的是我的答案中的选项2。
base_branch
(通常为master
或main
)的最终单个提交上。事实上,您所做的所有工作都无法在git log
中找到。 - Gabriel Staplestheir_feature_branch
的所有小提交中,但是一旦该特性分支被 GitHub "压缩合并" 到base_branch
中后,你应该将其删除,并且 PR 的发起者(不是你)是 GitHub 附加到base_branch
中的那个压缩提交的名称。如果 A) 该人已经离开公司数周或数月,现在却以某种方式合并了一个 PR(实际上是你做的),这可能会令人困惑和不理想;B) 如果他们在你的大部分工作中获得了他们的名字。也许他们用 10 行打开了 PR,但你完成了其他 500 行。你的名字应该出现在上面。 - Gabriel Staples