仕事とプライベートでgithubアカウントを分けて運用しています。
.gitconfigで設定を分けていたのですが、direnvが便利だそうなので設定してみます。
direnv is 何?
現在いるディレクトリに環境変数をロード/アンロードする拡張機能をシェルに追加できます。
direnvのインストール
$ brew install direnv
インストール後はバージョンを確認
$ direnv --version
公式のとおり.zshrcに追記
eval "$(direnv hook zsh)"
.zshrc再読み込み
$ source ~/.bashrc
gitの環境変数を設定
下記のように仕事用ディレクトリとプライベート用ディレクトリがある場合、それぞれのディレクトリ直下に.envrcファイルを設置する。
├ work/
└ private/
.envrcに環境変数1を追記
export GIT_COMMITTER_NAME=ユーザー名
export GIT_COMMITTER_EMAIL=メールアドレス
export GIT_AUTHOR_NAME=ユーザー名
export GIT_AUTHOR_EMAIL=メールアドレス
export GIT_SSH_COMMAND="ssh -i /user/to/path/sshkeyファイル"
.envrcの内容を反映する
$ direnv allow
これでgit commit、git push時に環境変数を参照するようになります。
今回の設定(環境変数の設定)だとgit config --list
ではuser.nameやuser.emailは表示されないので、git commit後にgit logを念の為確認しましょう。
$ git log
-
ちなみに環境変数はGit公式ドキュメントに記載があります。GIT_SSH_COMMAND、GIT_AUTHOR_NAME,GIT_AUTHOR_EMAILほか ↩