使用 Github 指南更改作者信息不起作用

Posted

技术标签:

【中文标题】使用 Github 指南更改作者信息不起作用【英文标题】:Change author info with Github guide doesn't work 【发布时间】:2017-10-29 06:02:46 【问题描述】:

我正在尝试更改上传到 Github 的 Git 存储库中的作者信息。我去了 Github 页面,他们展示了在提交中更改作者的指南。我有以下代码

git filter-branch --env-filter '
OLD_EMAIL="Admin@user"
CORRECT_NAME="hernan232"
CORRECT_EMAIL="hdvanegasm@unal.edu.co"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

当我运行代码时,它可以工作,但是当我执行时

git push --force --tags origin 'refs/heads/*'

它显示“一切都是最新的”。然后我去 Github 存储库并进行任何更改。你能帮我解决这个问题吗?

【问题讨论】:

定义“它有效”的含义。即使(或者实际上,尤其是如果)它最终什么都不做,filter-branch 命令也会成功,在这种情况下,没有什么新东西可以推送。 【参考方案1】:

要检查命令是否确实有效,请使用log pretty format(如this answer),输入:

 git log --pretty=format:"%h%x09%an%x09%ae%x09~ %an%x09%ce"

这将显示每个提交的作者和提交者姓名和电子邮件:如果它们是正确的,那么你可以推送。 如果它们没有改变,就没有什么可推动的了。

【讨论】:

【参考方案2】:

我可能错了,但我认为最后一个命令只是推送标签。 推送所有分支(包括master),需要先运行git push --force --all

我在个人 repo 上进行了测试,得到了和你一样的信息(我还没有创建任何标签——也许这就是它“最新”的原因)。运行上面的命令我成功推送了。

【讨论】:

以上是关于使用 Github 指南更改作者信息不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 样式字幕多行不起作用

多维动态数组,为啥不起作用?

为啥 git 无法识别我的文件已更改,因此 git add 不起作用

react-bootstrap:模态的 dialogClassName 道具不起作用

Hibernate HQL Count Distinct 不起作用?

@font-face 在 Firefox 中不起作用 [重复]