2014-10-03 35 views
0

我有一箇舊的CVS回購我已經轉換到GIT並在這樣做,我意識到,我的一些用戶名都搞砸了......我的東西可以用.mailmap我」修復M還採用Atlassian的藏匿和一定的插件,讓我看到誰犯的問題是什麼等,其accordiong對插件的指令漂亮的圖表:重寫月1日提交一個Git回購

  1. 我該如何合併兩個用戶使用不同的郵件誰實際上是一個人?從Stash 2.5.0開始,您可以使用 存儲庫中的.mailmap文件來執行此操作。請注意,這僅影響添加郵件地圖文件後提交的 。在 Git中更改全局.mailmap文件將無濟於事(請參閱此處的詳細信息)。

因此,這意味着,如果我加我.mailmap文件時,它不會真的對我的3個來的歷史提交的任何影響。

我相信我所想要做的就是重寫提交歷史修改第一承諾和.mailmap文件添加到回購,然後用力推覆蓋什麼是存儲在我的服務器上。

  • 這是正確的做法?
  • 什麼Git命令將我不得不以增加.mailmap文件,然後替換我的遠程回購

回答

0

Git Filter Branch

運行。如果你正在重寫,所有的歷史,反正你可以只改變名稱/電子郵件,而不是使用.mailmap。

如果你想添加的mailmap也將使用過濾器分支,但形式不同的吧。這將是像你想重寫電子郵件,而不使用mailmap

 git filter-branch --env-filter ' 

     DUP_EMAIL="email_that_you_want_to_change" 
     CORRECT_EMAIL="email_you_would_rather_have" 

     if [ "$GIT_COMMITTER_EMAIL" = "$DUP_EMAIL" ] 
     then 
      export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" 
     fi 
     if [ "$GIT_AUTHOR_EMAIL" = "$DUP_EMAIL" ] 
     then 
      export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" 
     fi 
     ' --tag-name-filter cat -- --branches --tags 
什麼