はじめに
初めまして、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ディレクトリ以下のリポジトリでコミットした場合はログは次のようになります。
おわりに
今回はGitアカウントの切り替えを導入しました。
これでconfigファイルの変更を忘れて、違う名前でコミットしてしまうような事故は無くなると思います!
間違いや他にいい方法等あればご指摘頂けたらと思います。
Wantedlyでもブログ投稿してます
Techブログに加えて会社ブログなどもやっているので、気になった方はぜひ覗いてみてください。
https://www.wantedly.com/companies/ks-rogers