2013-07-03 52 views
2

假设您已经创建了一个git仓库并提交了一些更改,但是您意识到您的全局用户名和电子邮件地址设置不正确,并且您需要更改所有提交。如何做到这一点?是否像改变你的全球设置一样简单,然后做一个git rebase --interactive更改所有提交的提交元数据

现在该如何回购推送给GitHub。幸运的是,没有其他人对该回购协议进行修改或分叉。最简单的修复方法就是在GitHub上加载回购,然后重新创建它?

回答

2

您可以使用git filter-branch像(修改“新名称”和“[email protected]”):

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

如果你不想做整个分支你可以在添加一个版本范围end(reva不会被触碰):

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

为什么不使用env-filter? – Chronial

+0

我发现--commit-filter更易于使用。 – cforbish