聞こえないJavaエンジニアが適当に書き連ねていく

つらつらとメモしたり日頃の溜まっている想いを吐き出す場所です。

"git configをプロジェクトによって使い分ける" 導入メモ

"git configをプロジェクトによって使い分ける" 導入メモ

Gitアカウントを使い分ける必要が生じたので qiita.com

を見ながら作業しようとしたら上手くいかなかったのであれこれ試行錯誤したときの個人的なメモ。

うまくいかなかったところ

gitconfigを見ながら書かれている通りに書いたつもりなのに、使い分けが出来ていなかった

原因

"Git v2.13.0(2017/05/10リリース)でgit configにConditional includes(条件付きインクルード)という機能が実装され" とあるのに、ローカルのGitのバージョンが2.9だった。

やったこと

sbtをインストールする · Scala研修テキストchocolatey.org

というツールがあるのを知った。 コマンドで一括更新できるという部分に魅力を感じていたので、まずは chocolatey をインストールする。

chocolatey のインストール

Installation に書かれているコマンドを実行すればいいが、PowerShellを管理者モードで起動しないとエラーになる、というところで一度はまる。 管理者モードで立ち上げた後はハマリポイントは無かった。

Gitのインストール

  • chocolatey.exe list -v -e Git でGitがバージョン管理下にあることを確認する。2.19が存在することを確認出来た。
  • chocolatey.exe install Git でGitをインストールする。
  • git --version で2.19がインストールされていることを確認する。

改めて git config を編集

Windowsなので\\でエスケープしないといけないのかなと思い、パスを\でエスケープしてみたが設定が反映されない。 検索したら stackoverflow.com を発見したので読んでみる。 回答の記述がスラッシュでの記述だったので、スラッシュに書き直してみる。 確認コマンドも回答に書かれているように、

git config --show-origin --get user.email

で確認してみた。

[includeIf "gitdir:C:/Users/<users>/Documents/sampledir/"]
  path = .gitconfig_work

と定義したとき、

sampledir  ← .gitconfig の定義が使われる
   ├ aaa  ← .gitconfig_work の定義が使われる
   └ bbb  ← .gitconfig_work の定義が使われる

ということが分かった。