設定與配置
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
- gitattributes
- 命令列介面慣例
- 每日 Git
- 常見問題 (FAQ)
- 詞彙表
- 鉤子 (Hooks)
- gitignore
- gitmodules
- 修訂版本
- 子模組
- 教學
- 工作流程
- 所有指南...
管理
底層命令
- 2.32.1 → 2.47.0 無變更
-
2.32.0
06/06/21
- 2.31.1 → 2.31.8 無變更
-
2.31.0
03/15/21
描述
如果檔案 .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@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>
GIT
屬於 git[1] 套件的一部分