セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット作成
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.32.1 → 2.49.0 変更なし
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 変更なし
-
2.31.0
2021-03-15
説明
リポジトリのトップレベルに、または `mailmap.file` や `mailmap.blob` 設定オプション(git-config[1] を参照)で指定された場所にファイル `.mailmap` が存在する場合、それは作者とコミッターの名前およびメールアドレスを、標準的な実名とメールアドレスにマッピングするために使用されます。
構文
*#* 文字は行末までのコメントを開始し、空白行は無視されます。
単純な形式では、ファイルの各行は作者の標準的な実名、空白、そしてコミットで使用される(*<* と *>* で囲まれた)メールアドレスで構成され、その名前にマッピングされます。例:
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が指定されたコミット名とメールアドレスの両方に一致するコミットの名前とメールの両方を置き換えることを可能にします。
Eメールと名前の両方が大文字と小文字を区別せずに照合されます。例えば、これは上記の *Commit Name <commit@email.xx>* にも一致します。
Proper Name <proper@email.xx> CoMmIt NaMe <CoMmIt@EmAiL.xX>
注記
Gitは、ワーキングツリー内の `.mailmap` ファイルにアクセスする際、シンボリックリンクを辿りません。これにより、ファイルがインデックスまたはツリーからアクセスされる場合と、ファイルシステムからアクセスされる場合とで動作の一貫性が保たれます。
例
履歴には、JaneとJoeという2人の作者によるコミットが含まれており、彼らの名前はリポジトリ内でいくつかの形式で現れます。
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)>* のEメールをそのままにしておくのは、通常、望ましくありません。これらも修正する `.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がメールアドレスを共有していたが、名前は共有していなかった場合、例えばバグ報告システムによって生成された履歴に次の2つのコミットがあったとします。すなわち、履歴に名前が次のように表示される場合:
Joe <bugs@example.com> Jane <bugs@example.com>
これらのケースも処理する完全な `.mailmap` ファイル(上記例に2行追加)は次のようになります:
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] スイートの一部