はじめに
設定する方法だけ知りたい方は こちら
また、実行の際は、自己責任でお願いします。
なお、Gitの複数アカウントについては、以下をどうぞ。
背景
- 個人用と、会社用のGitアカウントを所有してる
- 都度切り替えが面倒である
- アカウントを間違えるリスクある
- 先日、新環境にした
注意点
初記事です。記事の書き方や、記事の内容など不適切なものがあればご指摘お願いします。
また、改善点なども投げていただけると嬉しいです。
言葉の定義
Gitアカウント
- Gitのアカウント または Githubのアカウント のこと。
- Gitのアカウント と Githubのアカウント との違いがわからなかったので。
実行環境
- Windows 11
- PowerShell 7.2.6
- git version 2.37.3.windows.1
設定方法の調査
以下5つが見つかった。
- レポジトリ毎に設定する
- clone時に設定する
- 毎回切り替える
- 自動で読み込ませる
- なんだかよくわからん方法で切り替える
今回試す方法について
私「前に調べた Conditional includes ってやつ使えば簡単に実装できるやろ」
ということで、 4.自動で読み込ませる を試します。
実現したいこと
- 基本は、個人のアカウントでgitを利用
- 特定のディレクトリ 以下の時、会社用に切り替える
本筋の設定
設定1.設定ファイルの新規作成
ディレクトリや、ファイル名、拡張子などの指定は特にありません。
(一番楽なのは、ユーザーディレクトリ直下かもしれないです。)
適宜内容を変えながら、以下を書き込んでください。
[user]
email = 会社用メールアドレス
name = 会社用ユーザー名
設定1.参考例
C:/hoge 以下に GitChanger を作成、内容は以下。
[user]
email = HogeHuman@Black.com
name = EmployeeNo3
設定2.設定ファイルを読み込ませる設定
GUIで設定しても問題ないです。
- ユーザディレクトリ直下に移動
- .gitconfig を変更 もしくは、 新規作成
- 書き込みの注意点
- includeIfのパスの語尾に、 /** をつける点
- 区切りは、\ ではなく / である点
- 既に、[user] などがあるときは、今回追記する必要はない点
- 書き込みの注意点に気をつけ、適宜内容を変えながら、以下を書き込む。
なお、このファイルがあるパスからの相対パスで、指定することも可能です。
[user]
email = 個人用メールアドレス
name = 個人用ユーザー名
[includeIf "gitdir:特定のディレクトリのパス/**"]
path = 先程の設定ファイルのパス
設定2.参考例
C:/DeskWork/ 以下を、会社用のディレクトリにする場合。
なお、ユーザー直下に設定ファイルを作成した場合は、path = ファイル名 で良い筈です(未検証)。
[user]
email = Hogex@gugure.com
name = Hogex
[includeIf "gitdir:C:/DeskWork/**"]
path = C:/hoge/GitChanger
以上で、設定作業は終了です。お疲れ様でした。
本当にできているか確認
会社用のディレクトリ と それ以外のディレクトリ で、ユーザー名かメールアドレスを表示すれば確認できます。
ユーザー名を表示
git config user.name
メールアドレスを表示
git config user.email
ユーザー名での成功確認例
以下を実行で、
cd C:\
git config user.name
個人用のユーザー名 Hogex が出力。
メールアドレスでの成功確認例
以下を実行で、
cd C:\DeskWork\
git config user.name
会社用のユーザー名 EmployeeNo3 が出力。
感想
こういう作業の大抵は、既存の記事を参考に行っていたので、1から自力でやるのは楽しかったです。
初記事ということで勝手がわからなかったですが、取り敢えず公開できて良かったです。
参考文献
主に、方法の調査時に拝見しました。
この場を借りて感謝の意を表します。ありがとうございました。
- 複数 git アカウントを1台のPCで使い分ける方法 - Qiita
- githubアカウント切り替えを簡単にする方法 - Zenn
- 複数のgitアカウントを使い分ける - Qiita
- gitのアカウントを切り替えるshellコマンドを作成してみた
-
Git - git-config Documentation #Conditional includes
→ Gitの公式ドキュメントうち、git-config の章、Conditional includes の項。