我可以在 GitHub 拉取请求中更改提交的作者而不影响我的 `master` 分支的历史吗?

Can I change the author of commits in a GitHub pull request without affecting history of my `master` branch?

在我的 GitHub 存储库中,有一个开放的拉取请求,用于将分支 blTool-importFile-test 的更改合并到 masternew-files 上的几次提交是意外地使用无法访问的内部电子邮件地址提交的,我想在合并到 master.

之前更正此问题

请注意,此问题与“Change the author and committer name and e-mail of multiple commits in Git”类似。主要区别在于我只想更改 select 分支特有的少数提交的作者,而不是重写整个项目的历史。

是否可以更改我的 blTool-importFile-test 分支 上的提交的作者而不影响 master 历史?

选项 1

如果邮箱地址是***@***.internal,貌似你想修改作者信息,你还是可以使用方式:

$ git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "***@***.internal" ];
        then
                GIT_AUTHOR_NAME="new name";
                GIT_AUTHOR_EMAIL="new email";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

这将在整个提交历史中搜索。

选项 2

如果不想在所有commit history中搜索,也可以单独编辑某个commit author信息。比如你想更改 commitA 的作者,你需要找到 commitA 的父级(在 commitA 之前提交),然后使用以下步骤:

git rebase -i <parent of commitA> -p

输入 i,然后将 pick 更改为 edit for commitA: edit commitA。然后在交互window.

中输入Esc:wq
git commit --amend --author="name <email address>"
git rebase --continue

然后使用相同的方法更改其他提交的作者。

注意: -p (--preserver-merges) 将保留结构作为合并。而rebase在处理merge commit的时候,可能会有冲突,你应该和merge一样modify/save冲突文件,然后使用git add .git rebase --continue.