「あれ、今どっちのアカウントでコミットしてたっけ…?」
Gitを複数プロジェクトで使っている方なら、一度はこの感覚を経験したことがあるんじゃないでしょうか。個人のGitHubアカウントでコミットするつもりが、気づいたら会社用の名前やメールがコミットログに残っていた…なんてミス、あるあるですよね😅
これ、単なる恥ずかしいミスで済めばいいんですが、規制の厳しい業務環境や、クライアント案件では監査ログに残ってしまう、けっこうシリアスな問題でもあります。
🤔 なぜGitのID管理はミスりやすいのか?

Gitには「グローバル設定」と「ローカル設定」があります。
- グローバル設定:PC全体に適用される名前・メール(
~/.gitconfig) - ローカル設定:そのリポジトリだけに適用される名前・メール(
.git/config)
つまり、リポジトリごとにローカル設定を忘れると、グローバルの設定が勝手に使われるんです。これが落とし穴。
現在の設定を確認するには、こうします👇
# グローバル設定を確認
git config --global user.name
git config --global user.email
# 今いるリポジトリのローカル設定を確認
git config user.name
git config user.email
ポイントをまとめるとこんな感じです。
- グローバル側:個人アカウント or 会社アカウントのどちらかだけ設定されている
- ローカル側:設定なし → グローバルが使われてしまう
- 確認コマンドを習慣にするだけで、ミスがぐっと減ります!
✅ リポジトリごとにIDを自動切り替えする方法
手動で毎回設定するのは面倒ですよね。そこで便利なのが、Gitの条件付き設定(Conditional Includes)です。
イメージとしては「このフォルダ以下のリポジトリは、この設定ファイルを使う」という仕組みです。
~/.gitconfig にこう書きます👇
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
そして、それぞれの設定ファイルを作ります。
# ~/.gitconfig-work
[user]
name = Taro Yamada
email = taro@company.co.jp
# ~/.gitconfig-personal
[user]
name = taro-dev
email = taro@personal.example.com
これで、~/work/ 以下のリポジトリでは自動的に会社用アカウント、~/personal/ 以下では個人アカウントが使われるようになります✨
🛡️ コミット前にIDを確認するワンライナー
「フォルダ構成が複雑で条件分けが難しい」という方は、コミット前に確認するエイリアスを仕込むのもアリです。
# ~/.gitconfig に追記
[alias]
whoami = "!git config user.name && git config user.email"
これで git whoami と打つだけで、今のIDが一発確認できます。コミット前の小さな習慣として取り入れてみてください🙌
まとめ
Gitの「Who Am I?」問題、意外と多くの開発者がぶつかる地味なストレスです。
- 📌
git config user.name / user.emailで現在のIDを確認 - 📁
includeIfでフォルダごとにIDを自動切り替え - ⚡
git whoamiエイリアスでコミット前に一発確認
一度設定してしまえば、もう「誰としてコミットしたっけ?」と悩む必要はなくなります。ぜひ今日のうちに試してみてください!





