2014-09-19 45 views
1

如何我不能爲我所有提交的歷史,但並具體commiter更改名稱和電子郵件..混帳改變所有歷史提交者的姓名和電子郵件特定的提交

類似,的foreach allcommits如果committer_name =「雨果卡薩「 變化: committer_name committer_email AUTHOR_NAME AUTHOR_EMAIL

,並做到這一點, 推並刷新歷史數據之後。

請helppp我搜索,發現這個:

git filter-branch --commit-filter ' 
     if [ "$GIT_COMMITTER_NAME" = "production251" ]; 
     then 
       GIT_COMMITTER_NAME="Hugo Casanova"; 
       GIT_AUTHOR_NAME="Hugo Casanova"; 
       GIT_COMMITTER_EMAIL="hugo.casanova.ibusplus.com"; 
       GIT_AUTHOR_EMAIL="hugo.casanova.ibusplus.com"; 
       git commit-tree "[email protected]"; 
     else 
       git commit-tree "[email protected]"; 
     fi' HEAD 


git filter-branch --env-filter ' 
    oldname="(old name)" 
    oldemail="(old email)" 
    newname="(new name)" 
    newemail="(new email)" 
    [ "$GIT_AUTHOR_EMAIL" = "$oldemail" ] && GIT_AUTHOR_EMAIL="$newemail" 
    [ "$GIT_COMMITTER_EMAIL" = "$oldemail" ] && GIT_COMMITTER_EMAIL="$newemail" 
    [ "$GIT_AUTHOR_NAME" = "$oldname" ] && GIT_AUTHOR_NAME="$newname" 
    [ "$GIT_COMMITTER_NAME" = "$oldname" ] && GIT_COMMITTER_NAME="$newname" 
    ' HEAD 

但是......之後: 寫:git的日誌--pretty =格式爲: 「%的」 |排序-u 和production251節目的名字..

我找到了新的代碼:

git的過濾分支--force --env過濾器' 如果[ 「$ GIT_COMMITTER_NAME」= dmiguel」]; 然後 GIT_COMMITTER_NAME = 「黛安娜米格爾」; GIT_COMMITTER_EMAIL = 「[email protected]」; GIT_AUTHOR_NAME = 「黛安娜米格爾」; GIT_AUTHOR_EMAIL = 「[email protected]」; 音響」 - - - 所有

這是好的?還是不? minal(ubuntu),需要一些代碼adittional?,推或什麼的?

回答

1

您在設置它們和執行git commit-tree時,將失去爲GIT_COMMITTER_NAME和其他人設置的值。您或者需要將它全部放在同一個命令行上,或者在它們前面使用export

+0

這種情況下的完整代碼是什麼?請幫忙! – 2014-09-19 18:46:23

+0

我發現了新的代碼: – 2014-09-19 18:46:46