2011-12-19 38 views
2

我使用git,並在郵件地圖中有條目,將人們使用的各種電子郵件地址重新映射到該用戶的「規範」名稱和電子郵件。不過,我也有一些歷史承諾,根本沒有電子郵件,但只是一個用戶名,如「tommy」。如何讓git識別沒有電子郵件地址的用戶郵件地圖?

我想重新映射這些,爲該用戶的規範名稱和電子郵件,但一直無法這樣做。我試過兩種:

Canonical_name tommy 
Canonical <[email protected]> tommy <> 
Canonical tommy <> 

但是這些都沒有任何效果。

編輯澄清:我沒有任何改變歷史的願望。我只想在使用%mail重新打印名稱時使用郵件地圖進行重新打印時顯示的規範名稱。這適用於3個不同的電子郵件地址應該映射到一個規範名稱的情況。但對於原來的comitter並未提供電子郵件地址的情況,完全沒有。

+0

你使用的是什麼版本?從版本1.6.2的Git發行說明中:'.mailmap文件的位置可以配置,並且其文件格式得到了增強,以允許映射不正確的電子郵件字段。「使用版本1.7.8的快速測試工作正確;當我在'.mailmap'中使用'Tommy Lee <[email protected]> tommy <>'時,作者信息被映射。這可能是版本之間的行爲差​​異。 – 2011-12-19 14:29:06

+0

我使用git 1.7.5.4 – Agrajag 2012-01-26 13:55:51

回答

0

由於提交已經在樹中,它們不會改變 - 它會破壞歷史的完整性!

如果您真的想這樣做,您的唯一選擇是使用git filter-branch,請參閱here瞭解更多詳情。但是你肯定會改變你的倉庫,這意味着其他使用這個倉庫的人也會受到影響。

0

您可以添加一個僞造的電子郵件地址,如[email protected]

另一方面:如果人們仍然在項目中,他們現在有一個現有的電子郵件地址。如果他們不在那裏:爲什麼要打擾地址?在這種情況下,你可以拿一個假地址...