码农家园

关闭
导航

关于git:更改所有提交的提交元数据


gitgithubmetadata

Changing commit metadata on all commits

本问题已经有最佳答案,请猛点这里访问。

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

如果回购被推到Github怎么办?幸运的是,没有其他人对回购进行过更改或将其分叉。最简单的修复方法是在GitHub上对回购进行核弹,然后重新创建它吗?


您可以使用git filter-branchlike(修改"new name"和"[email protected]"):

1
git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="New Name"; export GIT_AUTHOR_EMAIL="[email protected]"; git commit-tree"$@"'

如果您不想做整个分支,您可以在结尾处添加修订范围(reva不会被触摸):

1
git filter-branch --commit-filter 'export GIT_AUTHOR_NAME="New Name"; export GIT_AUTHOR_EMAIL="[email protected]"; git commit-tree"$@"' reva..revb

号

相关讨论

  • 为什么不使用env过滤器?
  • 我发现——提交过滤器更容易使用。


  • 关于版本控制:如何在Git中更改多个提交的作者和提交者的姓名和电子邮件?
  • 关于版本控制:如何放弃Git中未分页的更改?
  • 关于GitHub:如何克隆Git中的所有远程分支?
  • 关于git:如何修改现有的未提交的提交?
  • 关于版本控制:如何在提交前撤消"git add"?
  • 关于git:如何列出提交中的所有文件?
  • 关于GitBash:如何撤消Git中最近的本地提交?
  • 将最新提交移动到带有Git的新分支
  • 关于Git签出:如何将Git存储库恢复为以前的提交
  • 关于GitHub:使当前提交成为Git存储库中唯一(初始)提交?

Copyright ©  码农家园 联系:[email protected]