Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@shungo_m

ディレクトリによってgitアカウントを自動で切り替える設定(includeIf)

はじめに

gitのアカウントの切り替えってめんどくさいですよね?
切り替えを忘れて、仕事のgitにプライベートのアカウントでpushして直すのに苦労した方もいると思います。

そんなことが起こらないように自動でアカウントを切り替える設定を紹介します。

gitアカウントを切り替える設定

特に設定をしていないと.gitconfigの設定が適用されます。(global)

そこで、仕事用のディレクトリ(work)と私用のディレクトリ(private)によって
gitのアカウントを自動で切り替えられるように設定ファイルを追加します。

やることは2つです。
1. .gitconfigと同じ階層に.gitconfig_work.gitconfig_privateを作成してuser.name, user.emailを設定する
2. .gitconfigでディレクトリごとにパスを指定する

1. .gitconfig_work.gitconfig_privateを作成

下記のファイルを作成してnameとemailをそれぞれ設定します。

~.gitconfig_work
[user]
    name = workで使用したいuser.name
    email = workで使用したいglobalのuser.email
~.gitconfig_private
[user]
    name = privateで使用したいuser.name
    email = privateで使用したいglobalのuser.email

2. .gitconfigでディレクトリごとにパスを指定する

アカウントが切り替わるように.gitconfigでディレクトリごとにパスを指定する
includeIfがめっちゃ重要!

~.gitconfig
[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に自作の関数を作って切り替えていました。
それだけでも十分感動したのですが、やっぱり自動で切り替えができる方がミスもしないのでいいですよね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What is going on with this article?