はじめに
GitHubの複数アカウントを使い分けるには片方のアカウントでSSH接続する方法があります。ですがGitHubでGit LFSのファイルはhttpsのみでSSHにできないのでダウンロードできません。そこでCredential Managerのnamespaceで複数アカウントをhttpsで使い分けます。
必須環境
Git for WindowsのインストールウィザードでEnable Git Credential Manager
をチェックしてCredential Manager for Gitを一緒にインストールします。
メインアカウントの設定
特に設定は不要です。git cloneなどを行って認証するとコントロールパネルの資格情報マネージャーのWindows資格情報にgit:https://github.com
が追加されます。
サブアカウントでの設定
Credential Managerでnamespaceを設定すると資格情報の先頭のgit:
が変わり複数のアカウントを使い分けることができます。
-
cloneする時はnamespaceが設定されていないので
-c credential.namespace
で指定します。指定する名前はgit
以外の英数字なら何でも構いません。git -c credential.namespace=sub clone https://github.com/[name]/[repository].git
ダイアログが出てくるのでサブアカウントのアカウントとパスワードを入力します。
-
cloneできたらローカルコンフィグに
credential.namespace
を設定します。cd [repository] git config credential.namespace sub
-
pushして失敗しない事を確認します。
git push
cloneして認証が通った後に資格情報マネージャーを開くとsub:https://github.com
が追加されています。
詳しくはCredential Manager for Windowsのcredential.namespaceを参照してください。
注意点
git configのConditional Includesを使うとgitdir:
で指定したフォルダにcredential.namespace
を設定できそうですがCredential ManagerがConditional Includesに対応していないので利用できません。issuesに要望を上げたので興味ある方はリアクションやコメントをお願いします。