はじめに
gitのアカウントの切り替えってめんどくさいですよね?
切り替えを忘れて、仕事のgitにプライベートのアカウントでpushして直すのに苦労した方もいると思います。
そんなことが起こらないように自動でアカウントを切り替える設定を紹介します。
gitアカウントを切り替える設定
特に設定をしていないと.gitconfigの設定が適用されます。(global)
そこで、仕事用のディレクトリ(work)と私用のディレクトリ(private)によって
gitのアカウントを自動で切り替えられるように設定ファイルを追加します。
やることは2つです。
-
.gitconfig
と同じ階層に.gitconfig_work
と.gitconfig_private
を作成してuser.name, user.emailを設定する -
.gitconfig
でディレクトリごとにパスを指定する
1. .gitconfig_work
と.gitconfig_private
を作成
下記のファイルを作成してnameとemailをそれぞれ設定します。
[user]
name = workで使用したいuser.name
email = workで使用したいglobalのuser.email
[user]
name = privateで使用したいuser.name
email = privateで使用したいglobalのuser.email
2. .gitconfig
でディレクトリごとにパスを指定する
アカウントが切り替わるように.gitconfig
でディレクトリごとにパスを指定する
includeIf
がめっちゃ重要!
[user]
name = globalのuser.name
email = globalのuser.email
# workディレクトリの時に.gitconfig_workが読み込まれる
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig_work
# privateディレクトリの時に.gitconfig_privateが読み込まれる
[includeIf "gitdir:~/private/"]
path = ~/.gitconfig_private
確認
まずはworkディレクトリ
workディレクトリの任意のプロジェクト内で下記のコマンドを打つとworkのname,emailになっていると思います。
$ git config user.name
workのuser.name
$ git config user.email
workのuser.email
次にはprivateディレクトリ
privateディレクトリの任意のプロジェクト内で下記のコマンドを打つとprivareのname,emailになっていると思います。
$ git config user.name
privateのuser.name
$ git config user.email
privateのuser.email
終わりに
これを知る前はshellに自作の関数を作って切り替えていました。
それだけでも十分感動したのですが、やっぱり自動で切り替えができる方がミスもしないのでいいですよね。