リモートリポジトリを管理する

お手元のコンピューター上にあるローカルリポジトリと、GitHub にホストされているリポジトリを使用する方法を学びます。

Adding a remote repository

To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at.

git remote add コマンドは 2 つの引数を取ります:

  • リモート名。たとえば origin
  • リモート URL。たとえば https://github.com/user/repo.git

例:

$ git remote add origin https://github.com/user/repo.git
# 新しいリモートの設定

$ git remote -v
# 新しいリモートの検証
> origin  https://github.com/user/repo.git (fetch)
> origin  https://github.com/user/repo.git (push)

For more information on which URL to use, see "About remote repositories."

Troubleshooting: Remote origin already exists

This error means you've tried to add a remote with a name that already exists in your local repository.

$ git remote add origin https://github.com/octocat/Spoon-Knife.git
> fatal: remote origin already exists.

To fix this, you can:

  • 新しいリモートに別の名前を使う.
  • Rename the existing remote repository before you add the new remote. For more information, see "Renaming a remote repository" below.
  • Delete the existing remote repository before you add the new remote. For more information, see "Removing a remote repository" below.

Changing a remote repository's URL

The git remote set-url command changes an existing remote repository URL.

Tip: For information on the difference between HTTPS and SSH URLs, see "About remote repositories."

git remote set-urlコマンドは 2 つの引数を取ります:

  • 既存のリモート名。 originupstream がよく使われます。
  • リモートの新しい URL。 例:
    • HTTPS を使うよう更新する場合、URL は以下のようになります:
      https://github.com/USERNAME/REPOSITORY.git
    • SSH を使うよう更新する場合、URL は以下のようになります:
      git@github.com:USERNAME/REPOSITORY.git

リモート URL の SSH から HTTPS への切り替え

  1. ターミナルターミナルGit Bashを開いてください。
  2. ワーキングディレクトリをローカルプロジェクトに変更します。
  3. 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。
    $ git remote -v
    > origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
    > origin  git@github.com:USERNAME/REPOSITORY.git (push)
  4. git remote set-url コマンドでリモートの URL を SSH から HTTPS に変更します。
    $ git remote set-url origin https://github.com/USERNAME/REPOSITORY.git
  5. リモート URL が変更されたことを検証します。
    $ git remote -v
    # Verify new remote URL
    > origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
    > origin  https://github.com/USERNAME/REPOSITORY.git (push)

次にリモートリポジトリに対して git fetchgit pull、または git push を実行するときに、GitHub ユーザ名とパスワードを求められます。 When Git prompts you for your password, enter your personal access token (PAT) instead. Password-based authentication for Git has been removed, and using a PAT is more secure. For more information, see "Creating a personal access token."

You can use a credential helper so Git will remember your GitHub username and personal access token every time it talks to GitHub.

リモート URL の HTTPS から SSH への切り替え

  1. ターミナルターミナルGit Bashを開いてください。
  2. ワーキングディレクトリをローカルプロジェクトに変更します。
  3. 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。
    $ git remote -v
    > origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
    > origin  https://github.com/USERNAME/REPOSITORY.git (push)
  4. git remote set-url コマンドでリモートの URL を HTTPS から SSH に変更します。
    $ git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
  5. リモート URL が変更されたことを検証します。
    $ git remote -v
    # Verify new remote URL
    > origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
    > origin  git@github.com:USERNAME/REPOSITORY.git (push)

Troubleshooting: No such remote '[name]'

このエラーは、変更しようとしたリモートが存在しないことを意味します。

$ git remote set-url sofake https://github.com/octocat/Spoon-Knife
> fatal: No such remote 'sofake'

リモート名を正しく入力したか確認してください。

Renaming a remote repository

Use the git remote rename command to rename an existing remote.

git remote rename コマンドは、次の 2 つの引数を取ります:

  • 既存のリモート名(origin など)
  • リモートの新しい名前 (destination など)

サンプル

次の例は (推奨されるとおり) HTTPS を使用してクローンを作成したと想定しています。

$ git remote -v
# 既存のリモートを表示
> origin https://github.com/オーナー/リポジトリ.git (fetch)
> origin https://github.com/オーナー/リポジトリ.git (push)

$ git remote rename origin destination
# リモート名を「origin」から「destination」に変更

$ git remote -v
# リモートの新しい名前を確認
> destination https://github.com/オーナー/リポジトリ.git (fetch)
> destination https://github.com/オーナー/リポジトリ.git (push)

Troubleshooting: Could not rename config section 'remote.[old name]' to 'remote.[new name]'

このエラーは、名前を変更しようとして入力した古いリモート名のリモートが存在しない、という意味です。

現在どのリモートが存在するかは、次のように git remote -v コマンドでチェックできます:

$ git remote -v
# 既存のリモートを表示
> origin  https://github.com/コードオーナー/リポジトリ.git (fetch)
> origin  https://github.com/コードオーナー/リポジトリ.git (push)

Troubleshooting: Remote [new name] already exists

このエラーは、使用しようとしたリモート名がすでに存在する、という意味です。 To solve this, either use a different remote name, or rename the original remote.

Removing a remote repository

Use the git remote rm command to remove a remote URL from your repository.

git remote rm コマンドは 1 つの引数を取ります:

  • リモート名 (destination など)

サンプル

次の例は (推奨されるとおり) HTTPS を使用してクローンを作成したと想定しています。

$ git remote -v
# 現在のリモートの表示
> origin  https://github.com/オーナー/リポジトリ.git (fetch)
> origin  https://github.com/オーナー/リポジトリ.git (push)
> destination  https://github.com/フォーカー/リポジトリ.git (fetch)
> destination  https://github.com/フォーカー/リポジトリ.git (push)

$ git remote rm destination
# リモートの削除
$ git remote -v
# 削除されていることの検証
> origin  https://github.com/オーナー/リポジトリ.git (fetch)
> origin  https://github.com/オーナー/リポジトリ.git (push)

メモ: git remote rm はリモートリポジトリをサーバから削除するわけではありません。 リモートとその参照をローカルリポジトリから削除するだけです。

Troubleshooting: Could not remove config section 'remote.[name]'

このエラーは、削除しようとしたリモートが存在しないことを意味します。

$ git remote rm sofake
> error: Could not remove config section 'remote.sofake'

リモート名を正しく入力したか確認してください。

参考リンク

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?