設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.32.1 → 2.50.1 無更改
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 無更改
-
2.31.0
2021-03-15
描述
如果檔案 .mailmap
存在於倉庫的頂層,或者存在於 mailmap.file
或 mailmap.blob
配置選項所指向的位置(參見 git-config[1]),它將用於將作者和提交者的名稱和電子郵件地址對映到規範的真實名稱和電子郵件地址。
語法
# 字元表示行尾註釋的開始,空行將被忽略。
在簡單形式中,檔案中的每一行都包含作者的規範真實姓名、空格,以及提交中使用的電子郵件地址(由 < 和 > 括起來),以對映到該姓名。例如
Proper Name <commit@email.xx>
更復雜的格式有
<proper@email.xx> <commit@email.xx>
它允許 mailmap 只替換提交的電子郵件部分,以及
Proper Name <proper@email.xx> <commit@email.xx>
它允許 mailmap 替換與指定提交電子郵件地址匹配的提交的名稱和電子郵件,以及
Proper Name <proper@email.xx> Commit Name <commit@email.xx>
它允許 mailmap 替換與指定的提交名稱和電子郵件地址都匹配的提交的名稱和電子郵件。
電子郵件和名稱都不區分大小寫。例如,這也會匹配上面所示的 Commit Name <commit@email.xx>
Proper Name <proper@email.xx> CoMmIt NaMe <CoMmIt@EmAiL.xX>
示例
你的歷史記錄包含兩個作者 Jane 和 Joe 的提交,他們的名字在倉庫中以多種形式出現
Joe Developer <joe@example.com> Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@laptop.(none)> Jane D. <jane@desktop.(none)>
現在假設 Joe 希望使用他的中間名首字母,而 Jane 更喜歡她的姓氏完全拼寫出來。一個用於更正這些姓名的 .mailmap
檔案會是這樣的
Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@desktop.(none)>
請注意,沒有必要僅為了更正姓名而對映 <jane@laptop.(none)> 的姓名。然而,將明顯錯誤的 <jane@laptop.(none)> 和 <jane@desktop.(none)> 電子郵件地址保留原樣通常不是你想要的。一個同時更正這些問題的 .mailmap
檔案是
Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> <jane@laptop.(none)> Jane Doe <jane@example.com> <jane@desktop.(none)>
最後,假設 Joe 和 Jane 共享一個電子郵件地址,但名稱不同,例如,在由錯誤報告系統生成的歷史記錄中有這兩個提交。即,歷史記錄中出現的名稱如下
Joe <bugs@example.com> Jane <bugs@example.com>
一個完整的 .mailmap
檔案,它也處理這些情況(在上述示例中增加兩行),將是
Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> <jane@laptop.(none)> Jane Doe <jane@example.com> <jane@desktop.(none)> Joe R. Developer <joe@example.com> Joe <bugs@example.com> Jane Doe <jane@example.com> Jane <bugs@example.com>