gpt4 book ai didi

git - "git filter-branch"成功用于更改提交者/作者,但更改不会反射(reflect)在 github 上

转载 作者:太空狗 更新时间:2023-10-29 13:12:25 25 4
gpt4 key购买 nike

我最近使用以下命令替换了我所有本地提交中的作者、提交者及其电子邮件:

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 之后……

git push -f origin master

…两个单独的项目顽固地拒绝更新他们的提交者和作者:Gemfile.lock 文件和一个 Views 目录。

另请注意:

  1. 这是我第二次对该存储库执行此类操作。我相信我第一次遇到这样的问题。

  2. 正在存储库中搜索我的旧名称...

    $ find . "<oldname">

确实产生了一堆结果,这意味着旧名称仍然潜伏在许多存储库文件中——包括在 GitHub 和本地出现更新的文件。

那么我的问题是:如何更改 GitHub 上两个“顽固”文件的提交者/作者?

最佳答案

使用 git filter-branch 后,git 仍然在 refs/original 中保留了 repo 历史的备份副本。这样一来,如果您弄乱了过滤器分支,则可以在需要时恢复。确定一切顺利后,您可以删除备份的引用:

git update-ref -d refs/original/refs/heads/master

出于某种原因,github 仍然需要额外提交才能反射(reflect)更改。我将在自述文件中添加一个空格或其他内容,提交并推送...之后,github 会在项目页面上反射(reflect)正确的作者。

关于git - "git filter-branch"成功用于更改提交者/作者,但更改不会反射(reflect)在 github 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10908872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com