在我的 GitHub 存储库上,有一个开放的 pull 请求,用于将分支 blTool-importFile-test
中的更改 merge 到 master
中。 new-files
上的多次提交是通过无法访问的内部电子邮件地址意外提交的,我想在 merge 到 master
之前更正此问题。
请注意,此问题类似于“Change the author and committer name and e-mail of multiple commits in Git ”。主要区别在于,我只想在 new-files
分支特有的少数提交上更改作者,而不是重写整个项目的历史记录。
是否可以在我的 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
如果您不想在所有提交历史中进行搜索,也可以单独编辑某个提交作者信息。比如你想把作者改成commitA
,您需要找到 commitA
的父级(在 commitA
之前提交),然后使用以下步骤:
git rebase -i <parent of commitA> -p
输入i,然后更改pick
如edit
对于 commitA
:edit commitA
。然后输入 Esc 和 :wq
在交互窗口中。
git commit --amend --author="name <email address>"
git rebase --continue
然后使用相同的方法更改其他提交的作者。
注意: -p
( --preserver-merges
) 会将结构保持为 merge 。当rebase处理 merge 提交时,可能会发生冲突,您应该像在 merge 中那样修改/保存冲突文件,然后使用git add .
和git rebase --continue
.
关于git - 我可以在 GitHub pull 请求中更改提交的作者而不影响 `master` 分支的历史记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599452/