2013-07-03 50 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