ヒント: HTTPS と SSH URL との違いについては、「どのリモート URL を使うべきか?」を参照してください。
git remote set-url
コマンドは 2 つの引数を取ります:
- 既存のリモート名。
origin
やupstream
がよく使われます。 - リモートの新しい URL。 例:
- HTTPS を使うよう更新する場合、URL は以下のようになります:
https://[hostname]/USERNAME/REPOSITORY.git
- SSH を使うよう更新する場合、URL は以下のようになります:
git@hostname:USERNAME/REPOSITORY.git
- HTTPS を使うよう更新する場合、URL は以下のようになります:
リモート URL の SSH から HTTPS への切り替え
- ターミナルターミナルGit Bashを開いてください。
- ワーキングディレクトリをローカルプロジェクトに変更します。
- 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。
$ git remote -v > origin git@hostname:USERNAME/REPOSITORY.git (fetch) > origin git@hostname:USERNAME/REPOSITORY.git (push)
git remote set-url
コマンドでリモートの URL を SSH から HTTPS に変更します。$ git remote set-url origin https://hostname/USERNAME/REPOSITORY.git
- リモート URL が変更されたことを検証します。
$ git remote -v # Verify new remote URL > origin https://hostname/USERNAME/REPOSITORY.git (fetch) > origin https://hostname/USERNAME/REPOSITORY.git (push)
次にリモートリポジトリに対して git fetch
、git pull
、または git push
を実行するときに、GitHub ユーザ名とパスワードを求められます。
- 2要素認証 を有効にしている場合は、パーソナルアクセストークンを作成して、GitHub パスワードのかわりに使用することができます。
- Git が GitHub と通信するたびに GitHub のユーザ名とパスワードを思い出すよう、認証情報ヘルパーを使用することができます。
リモート URL を HTTPS から SSH に切り替える
- ターミナルターミナルGit Bashを開いてください。
- ワーキングディレクトリをローカルプロジェクトに変更します。
- 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。
$ git remote -v > origin https://hostname/USERNAME/REPOSITORY.git (fetch) > origin https://hostname/USERNAME/REPOSITORY.git (push)
git remote set-url
コマンドでリモートの URL を HTTPS から SSH に変更します。$ git remote set-url origin git@hostname:USERNAME/REPOSITORY.git
- リモート URL が変更されたことを検証します。
$ git remote -v # Verify new remote URL > origin git@hostname:USERNAME/REPOSITORY.git (fetch) > origin git@hostname:USERNAME/REPOSITORY.git (push)
トラブルシューティング
リモートを変更しようとすると、以下のエラーが生じることがあります。
No such remote '[name]'
このエラーは、変更しようとしたリモートが存在しないことを意味します。
$ git remote set-url sofake https://hostname/octocat/Spoon-Knife
> fatal: No such remote 'sofake'
リモート名を正しく入力したか確認してください。