我最近使用以下命令替换了所有本地提交中的作者、提交者及其电子邮件:
git filter-branch -f --env-filter '
if [ "$GIT_COMMITTER_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
if [ "$GIT_AUTHOR_NAME" = "oldname" ];
then
GIT_COMMITTER_NAME="newname";
GIT_COMMITTER_EMAIL="newaddr";
GIT_AUTHOR_NAME="newname";
GIT_AUTHOR_EMAIL="newaddr";
fi
' -- --all
更新在本地立即可见(例如在我的 SourceTree 环境中)。但是,在将修改后的存储库强制推送到 GitHub 之后……</p>
git push -f origin master
... 两个单独的项目顽固地拒绝更新其提交者和作者:Gemfile.lock 文件和 Views 目录。
另请注意:
这是我第二次在这个存储库上执行这种操作。我相信我第一次没有遇到这样的问题。
在存储库中搜索我的旧名称...</p>
$ find . "<oldname">
…确实产生了一堆结果,这意味着旧名称仍然潜伏在许多存储库文件中——包括在 GitHub 和本地出现更新的文件。
那么我的问题是:如何更改 GitHub 上两个“顽固”文件的提交者/作者?