HTTPS と personal access token を使って複数のアカウントにコントリビュートする
または、両方のアカウントに HTTPS プロトコルを使う場合は、リポジトリごとに異なる資格情報を格納するように Git を構成することで、アカウントごとに異なる personal access token を使用できます。
-
ターミナルを開きます。
-
資格情報マネージャーを使用していることを確認するには、次のコマンドを入力し、出力をメモします。
Shell git config --get credential.helper
git config --get credential.helper -
出力で資格情報マネージャーを使用していることが確認された場合は、資格情報マネージャーの保存された資格情報をクリアします。
- 出力に資格情報マネージャーの名前が含まれていない場合は、資格情報マネージャーが構成されていないため、次の手順に進むことができます。
-
出力が
osxkeychain、macOS キーチェーンを使用しています。 認証情報を消去するには、コマンド ラインで認証情報ヘルパーを使用します。$ git credential-osxkeychain erase host=github.com protocol=https > [Press Return] > -
出力が
manager(前のバージョンではmanager-core)は、Git Credential Manager を使用しています。 資格情報をクリアするには、次のコマンドを実行します。Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
-
GitHub でアクセスする各リポジトリの完全なリモート URL の資格情報をキャッシュするように Git を構成するには、次のコマンドを入力します。
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true -
アカウントごとに
repoスコープを持つ専用の personal access token (classic) を作成します。 または、アカウントごと、自分がメンバーになっている organization ごとに、目的のリポジトリへのアクセスが可能で、リポジトリの内容に対する読み取りと書き込みのアクセス許可を持っている fine-grained personal access token を作成します。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。 -
Git を使用してリポジトリをクローンしたり、既にクローンしたリポジトリ内のデータにアクセスしたりすると、Git によって資格情報が要求されます。 リポジトリに対してアクセス権を持つアカウントの personal access token を指定してください。
Git を使い、リポジトリのフル リモート URL に基づいてpersonal access tokenをキャッシュします。こうすることで、正しいアカウントを使って、リポジトリ データにアクセスして GitHub.com に書き込むことができるようになります。
-
Git Bash を開きます。
-
資格情報マネージャーを使用していることを確認するには、次のコマンドを入力し、出力をメモします。
Shell git config --get credential.helper ```1. 出力で資格情報マネージャーを使用していることが確認された場合は、資格情報マネージャーの保存された資格情報をクリアします。* 出力に資格情報マネージャーの名前が含まれていない場合は、資格情報マネージャーが構成されていないため、次の手順に進むことができます。* 出力が `manager` (前のバージョンでは `manager-core`)は、Git Credential Manager を使用しています。 資格情報をクリアするには、次のコマンドを実行します。 ```shell copy echo "protocol=https`nhost=github.com" | git credential-manager erase
git config --get credential.helper ```1. 出力で資格情報マネージャーを使用していることが確認された場合は、資格情報マネージャーの保存された資格情報をクリアします。* 出力に資格情報マネージャーの名前が含まれていない場合は、資格情報マネージャーが構成されていないため、次の手順に進むことができます。* 出力が `manager` (前のバージョンでは `manager-core`)は、Git Credential Manager を使用しています。 資格情報をクリアするには、次のコマンドを実行します。 ```shell copy echo "protocol=https`nhost=github.com" | git credential-manager erase-
出力が
wincredは、Windows Credential Manager を使用します。 資格情報をクリアするには、次のコマンドを入力します。Shell cmdkey /delete:LegacyGeneric:target=git:https://github.com
cmdkey /delete:LegacyGeneric:target=git:https://github.com
-
-
GitHub でアクセスする各リポジトリの完全なリモート URL の資格情報をキャッシュするように Git を構成するには、次のコマンドを入力します。
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true -
アカウントごとに
repoスコープを持つ専用の personal access token (classic) を作成します。 または、アカウントごと、自分がメンバーになっている organization ごとに、目的のリポジトリへのアクセスが可能で、リポジトリの内容に対する読み取りと書き込みのアクセス許可を持っている fine-grained personal access token を作成します。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。 -
Git を使用してリポジトリをクローンしたり、既にクローンしたリポジトリ内のデータにアクセスしたりすると、Git によって資格情報が要求されます。 リポジトリに対してアクセス権を持つアカウントの personal access token を指定してください。
Git を使い、リポジトリのフル リモート URL に基づいてpersonal access tokenをキャッシュします。こうすることで、正しいアカウントを使って、リポジトリ データにアクセスして GitHub.com に書き込むことができるようになります。
-
ターミナルを開きます。
-
資格情報マネージャーを使用していることを確認するには、次のコマンドを入力し、出力をメモします。
Shell git config --get credential.helper
git config --get credential.helper -
出力で資格情報マネージャーを使用していることが確認された場合は、資格情報マネージャーの保存された資格情報をクリアします。
-
出力に資格情報マネージャーの名前が含まれていない場合は、資格情報マネージャーが構成されていないため、次の手順に進むことができます。
-
出力が
manager(前のバージョンではmanager-core)は、Git Credential Manager を使用しています。 資格情報をクリアするには、次のコマンドを実行します。Shell echo "protocol=https\nhost=github.com" | git credential-manager erase
echo "protocol=https\nhost=github.com" | git credential-manager erase
-
GitHub でアクセスする各リポジトリの完全なリモート URL の資格情報をキャッシュするように Git を構成するには、次のコマンドを入力します。
Shell git config --global credential.https://github.com.useHttpPath true
git config --global credential.https://github.com.useHttpPath true -
アカウントごとに
repoスコープを持つ専用の personal access token (classic) を作成します。 または、アカウントごと、自分がメンバーになっている organization ごとに、目的のリポジトリへのアクセスが可能で、リポジトリの内容に対する読み取りと書き込みのアクセス許可を持っている fine-grained personal access token を作成します。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。 -
Git を使用してリポジトリをクローンしたり、既にクローンしたリポジトリ内のデータにアクセスしたりすると、Git によって資格情報が要求されます。 リポジトリに対してアクセス権を持つアカウントの personal access token を指定してください。
Git を使い、リポジトリのフル リモート URL に基づいてpersonal access tokenをキャッシュします。こうすることで、正しいアカウントを使って、リポジトリ データにアクセスして GitHub.com に書き込むことができるようになります。
SSH と GIT_SSH_COMMAND を使用する複数のアカウントへのコントリビューション
両方のアカウントに SSH プロトコルを使用する場合は、アカウントごとに異なる SSH キーを使用できます。 SSH の使用について詳しくは、「SSH を使用したGitHubへの接続」を参照してください。
ワークステーションにクローンする異なるリポジトリに別の SSH キーを使用するには、Git 操作用のシェル ラッパー関数を記述する必要があります。 この関数で以下の手順を行う必要があります。
1.
git config --get remote.origin.url などのコマンドを使用して、所有者を含むリポジトリのフル ネームを特定します。
- 認証用の正しい SSH キーを選びます。
- 適宜、
GIT_SSH_COMMANDを変更します。GIT_SSH_COMMANDについて詳しくは、Git ドキュメントの「環境変数」を参照してください。
たとえば、次のコマンドでは、GitHub.com の OWNER/REPOSITORY という名前のリポジトリをクローンするための認証に、GIT_SSH_COMMAND にある秘密キー ファイルを使う SSH コマンドを指定するため、**** 環境変数を設定します。
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY
SSH と複数のキーを使用して複数のアカウントに貢献する
マネージド ユーザーを含む Enterprise のメンバーでありながら、個人アカウントを使用して企業の外部で共同作業を希望する場合、アカウントごとに異なる SSH キーを使用することができます。 SSH の使用について詳しくは、「SSH を使用したGitHubへの接続」を参照してください。
警告
マネージド ユーザーを含む組織 内と社外の両方のリポジトリに同じ SSH キーを使用して貢献することはできません。
-
あなたの マネージド ユーザーを含む組織 内のリポジトリ用に異なる SSH キーを生成してください。 「新しい SSH キーを生成して ssh-agent に追加する」を参照してください。 キーを保存するときに、既存のキーとは別のファイル名を付けます (たとえば、-emu ファイルの名前に追加します)。
-
新しい SSH キーを マネージド ユーザー アカウント に追加します。 「GitHub アカウントへの新しい SSH キーの追加」を参照してください
-
異なるキーを使用するように SSH 構成ファイル
~/.ssh/configを構成します。 たとえば、あなたの個人用 SSH キーが~/.ssh/id_ed25519で、あなたのマネージド ユーザーを含む Enterprise SSH キーが~/.ssh/id_ed25519-emuText Host github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes Host github-emu.com Hostname github.com IdentityFile ~/.ssh/id_ed25519-emu IdentitiesOnly yesHost github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes Host github-emu.com Hostname github.com IdentityFile ~/.ssh/id_ed25519-emu IdentitiesOnly yesメモ
`IdentitiesOnly`行により、ssh-agent が複数のキーを読み込んだ場合、ssh は接続時に正しいキーを使用します。 -
次のコマンドを実行して SSH 構成をテストし、個人用アカウントに関連付けられている SSH キーを使用して接続します。詳細については 、AUTOTITLE を参照してください
Shell ssh -T git@github.com
ssh -T git@github.comGitHub SSH キーを使用し、(マネージド ユーザーを含む Enterprise) に接続できるかどうかを確認します
Shell ssh -T git@github-emu.com
ssh -T git@github-emu.com -
マネージド ユーザーを含む組織 にリポジトリをダウンロードまたはアップロードするときに、正しいキーを使用するように
gitに指示します。 マネージド ユーザーを含む Enterprise、1. GitHub の右上隅にあるプロフィール画像をクリックしてから、[ Your organizations] をクリックします。 内の organization (組織) を一覧表示するには:- 一覧表示されている組織ごとに、
gitホストを使用するようにgithub-emu.comに指示します。
たとえば、いずれかの組織が
octocat-emu呼び出された場合、git組織内のリポジトリのホストgithub-emu.comを使用するようにoctocat-emuに指示するには、次のコマンドを実行します。Shell git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/"
git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/" - 一覧表示されている組織ごとに、
現在、SSH を使用してリポジトリを複製する際、octocat-emu 組織において git は個人キーではなく、マネージド ユーザーを含む Enterprise に関連付けられた SSH キーを使用します。
次のステップ
参考情報については、「個人用アカウントのリファレンス」をご覧ください。