如何通过命令行修改GitHub贡献者PR后保留其署名合并?
保留贡献者Credit的PR修改与合并命令行步骤
场景说明
你需要修改贡献者提交的PR内容,但希望最终合并后仍保留该贡献者的贡献记录(即提交作者信息为原贡献者),以下是具体命令行操作步骤:
方法一:直接修改贡献者的PR分支(需贡献者授权推送权限)
如果贡献者给了你他fork仓库的推送权限,可直接在他的分支上修改:
- 添加贡献者的仓库为本地远程:
git remote add <贡献者用户名> https://github.com/<贡献者用户名>/<你的仓库名>.git - 拉取贡献者的PR分支:
git fetch <贡献者用户名> <PR分支名> - 切换到该分支:
git checkout <贡献者用户名>/<PR分支名> - 进行所需修改,完成后提交(关键:指定原贡献者为提交作者):
git add . # 替换成原贡献者的姓名和邮箱,可从PR提交记录中获取 git commit --author="贡献者姓名 <贡献者邮箱>" -m "补充修改:[描述修改内容]" - 将修改推回贡献者的远程分支:
git push <贡献者用户名> HEAD:<PR分支名> - 此时GitHub上的PR会自动同步修改,确认后即可合并,贡献者的Credit会被正常记录。
方法二:无推送权限时的处理方案
如果没有贡献者仓库的推送权限,可基于PR分支创建本地分支修改,保留原作者信息:
- 拉取PR对应的提交到本地临时分支:
git fetch origin pull/<PR编号>/head:<临时分支名> - 切换到临时分支:
git checkout <临时分支名> - 完成修改后提交,同样指定原贡献者为作者:
git add . git commit --author="贡献者姓名 <贡献者邮箱>" -m "优化PR内容:[描述修改]" - 将临时分支推送到你的仓库:
git push origin <临时分支名> - 你可以选择:
- 让贡献者将你的临时分支合并到他的PR分支,更新原PR后合并;
- 直接将临时分支合并到你的主分支——由于提交作者是原贡献者,GitHub会自动统计他的贡献Credit。
关键注意点
- 原贡献者的姓名和邮箱可通过
git log查看PR分支的提交记录获取; - 不要随意修改原贡献者的提交哈希(如用
git commit --amend修改他的原始提交),除非征得对方同意,否则会破坏他的提交记录。
内容的提问来源于stack exchange,提问作者CristalDurman
相关产品推荐
相关产品推荐

