是否有可能通過一次傳遞git filter-branch
來批量重命名2個或更多的電子郵件地址?重命名多個名稱和電子郵件git-filter-branch的單個傳遞
我試圖只是複製if..fi clause
從this answer適應代碼:
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<Old Name 1>" ];
then
GIT_COMMITTER_NAME="<New Name 1>";
GIT_AUTHOR_NAME="<New Name 1>";
GIT_COMMITTER_EMAIL="<New Email 1>";
GIT_AUTHOR_EMAIL="<New Email 1>";
git commit-tree "[email protected]";
else
git commit-tree "[email protected]";
fi
if [ "$GIT_COMMITTER_NAME" = "<Old Name 2>" ];
then
GIT_COMMITTER_NAME="<New Name 2>";
GIT_AUTHOR_NAME="<New Name 2>";
GIT_COMMITTER_EMAIL="<New Email 2>";
GIT_AUTHOR_EMAIL="<New Email 2>";
git commit-tree "[email protected]";
else
git commit-tree "[email protected]";
fi' HEAD
但它給了我這個樣子過濾分支中的錯誤:
error: duplicate parent bc8f9924c33558a275b8f694969529cf56232c80 ignored
然後分支歷史全都糾纏不清: