1
我試圖使用重新寫一個回購的歷史:的Git濾波器分支不重寫所有的歷史
git filter-branch -f --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [[ "$GIT_COMMITTER_EMAIL" = jacks* ]]
then
cn="Jack Slingerland"
cm="[email protected]"
an="Jack Slingerland"
am="[email protected]"
fi
if [[ "$GIT_AUTHOR_EMAIL" = jacks* ]]
then
cn="Jack Slingerland"
cm="[email protected]"
an="Jack Slingerland"
am="[email protected]"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"'
-- --all
命令運行正常,並按規定重寫作者。問題是它似乎錯過了歷史上的一些條目。我認爲這是在分支所做的更改合併後發生的,但我不確定。
注意:這是一個使用Git + SVN導入Git的SVN存儲庫。
我最終得到了語法錯誤(bash的3.2): 的/ usr /的libexec/git的核/ GIT-濾波器分支:EVAL:線335:鄰近語法錯誤'〜=」 的/ usr /的libexec/git-core/git-filter-branch:eval:line 335:'if [[「$ GIT_COMMITTER_EMAIL」〜=「jonw。*」]]' env filter failed: – 2012-02-09 13:37:37
交換'〜'和'= '修復了語法錯誤。 – 2012-02-09 13:41:50
修復了語法錯誤,謝謝。 – James 2012-02-09 16:52:38