2013-12-23 39 views
0

我使用的腳本here修改在我所有的舊提交的回購作者的名字:老提交修改作者信息中,每次提交被複制

#!/bin/sh 

git filter-branch --env-filter ' 

an="$GIT_AUTHOR_NAME" 
am="$GIT_AUTHOR_EMAIL" 
cn="$GIT_COMMITTER_NAME" 
cm="$GIT_COMMITTER_EMAIL" 

if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ] 
then 
cn="Your New Committer Name" 
cm="Your New Committer Email" 
fi 
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ] 
then 
an="Your New Author Name" 
am="Your New Author Email" 
fi 

export GIT_AUTHOR_NAME="$an" 
export GIT_AUTHOR_EMAIL="$am" 
export GIT_COMMITTER_NAME="$cn" 
export GIT_COMMITTER_EMAIL="$cm" 
' 

腳本的工作,但它創造的副本每個提交 - 現在對於每個提交,都有一個提交錯誤的作者和一個提交正確的作者。有什麼辦法可以刪除錯誤作者的所有提交嗎?

謝謝!

回答

0

這是git filter-branch的正常行爲。由於無法修改歷史記錄,因此會根據舊歷史創建新分支(即備用歷史記錄)。

也許你想丟棄舊的分支。在與合作者合作時,您應該瞭解problems with rewriting history,正如git手冊中所述。