2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数のGitアカウントを使い分ける方法

Last updated at Posted at 2019-09-04

はじめに

初めまして、k.s.ロジャースの西谷です。

私がリモートワークを行う上で意外に困ったのがGitアカウントの使い分けです。
同じPCで会社と個人で別々のアカウントを利用したい場合は.gitconfigの中身を毎回書き換える必要があり煩雑でした。
また、.gitconfigの変更を忘れて会社リポジトリに個人アカウントでコミットしてしまうこともあります。

ローカルの時点で気づけばいいのですが、PRがマージされた後だとどうしようもなくなります。
そこで、今回は自動でGitアカウントを切り替える方法を共有出来たらと思います。

環境構築

direnvを導入します。
direnvは設定ディレクトリ以下の環境変数を切り替えるツールです。
ディレクトリ別の環境変数を切り替えてGitアカウントを変更する方針です。

brew install direnv

インストール後.bashrcに以下を追加します。

eval "$(direnv hook bash)"

source ~/.bashrcして反映します。

コンフィグの設定

direnvの設定は.envrcを作成します。
.envrcにGitアカウントの設定を追記します。

export GIT_COMMITTER_NAME='user'
export GIT_COMMITTER_EMAIL='hogehoge@example.com'
export GIT_AUTHOR_NAME='user'
export GIT_AUTHOR_EMAIL='hogehoge@example.com'

作成後、direnv allowすると有効になります。

動作例

例として、ディレクトリ構造は次のようにします。

.
├── private
│   ├── hoge-pj
│   │   ├── README.md
│   │   └── hogefile
│   └── .envrc (個人用の設定)
└── work
    ├── hoge-pj
    │   ├── README.md
    │   └── hogefile
    └── .envrc (職場の設定)

privateとwork直下でdirenv allowを実行します。

実行後、privateディレクトリ以下のリポジトリでコミットした場合はログは次のようになります。
image.png

workディレクトリの場合はこちらです。
image.png

おわりに

今回はGitアカウントの切り替えを導入しました。
これでconfigファイルの変更を忘れて、違う名前でコミットしてしまうような事故は無くなると思います!

間違いや他にいい方法等あればご指摘頂けたらと思います。

Wantedlyでもブログ投稿してます

Techブログに加えて会社ブログなどもやっているので、気になった方はぜひ覗いてみてください。
https://www.wantedly.com/companies/ks-rogers

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?