更改所有提交的提交元数据[重复]

Posted

技术标签:

【中文标题】更改所有提交的提交元数据[重复]【英文标题】:Changing commit metadata on all commits [duplicate] 【发布时间】:2013-06-30 14:00:39 【问题描述】:

假设您创建了一个 git 存储库并提交了一些更改,但随后您意识到您的全局用户名和电子邮件地址设置不正确,您需要更改所有提交。怎么可能呢?是否像更改全局设置然后执行git rebase --interactive 一样简单?

现在,如果将该 repo 推送到 GitHub 会怎样。幸运的是,没有其他人对该 repo 进行更改或对其进行分叉。最简单的解决方法是在 GitHub 上对 repo 进行核对,然后重新创建它吗?

【问题讨论】:

【参考方案1】:

您可以使用git filter-branch like(修改“新名称”和“new@email.com”):

git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="New Name"; export GIT_AUTHOR_EMAIL="new@email.com"; git commit-tree "$@"'

如果你不想做整个分支,你可以在最后添加一个修订范围(reva 不会被触及):

git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="New Name"; export GIT_AUTHOR_EMAIL="new@email.com"; git commit-tree "$@"' reva..revb

【讨论】:

为什么不使用环境过滤器? 我发现 --commit-filter 更容易使用。

以上是关于更改所有提交的提交元数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

应用程序加载器提交元数据

回复元数据拒绝后,我应该重新提交二进制文件吗?

元数据常用排查方法

应用因“元数据中缺少条款和条件”而被拒绝

Rails 为重复的 JSON 请求自动更新 CSRF 令牌

提交后更改元数据并留在同一个地方?