Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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

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

リモート リポジトリの追加

新しいリモートを追加するには、リポジトリが保存されているディレクトリでターミナルから git remote add コマンドを使います。

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

  • リモート名 (例: origin)
  • リモート URL (例: https://github.com/user/repo.git)

たとえば次のような点です。

$ git remote add origin https://github.com/USER/REPO.git
# Set a new remote

$ git remote -v
# Verify new remote
> origin  https://github.com/USER/REPO.git (fetch)
> origin  https://github.com/USER/REPO.git (push)

使用する URL の詳細については、「リモート リポジトリについて」を参照してください。

トラブルシューティング: リモート配信元が既に存在します

このエラーは、ローカルのリポジトリに既に存在している名前でリモートを追加しようとしたということです。

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

この問題を解決するには、以下を実行してください。

  • 新しいリモートに別の名前を使う。
  • 新しいリモートを追加する前に、既存のリモート リポジトリの名前を変更する。 詳細については、下記の「リモート リポジトリの名前を変更する」を参照してください。
  • 新しいリモートを追加する前に、既存のリモート リポジトリの名前を削除する。 詳細については、下記の「リモート リポジトリの削除」を参照してください。

リモート リポジトリの URL の変更

git remote set-url コマンドは、既存のリモート リポジトリ URL を変更します。

ヒント: HTTPS と SSH の URL の違いについては、「リモート リポジトリについて」を参照してください。

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

  • 既存のリモート名。 たとえば、originupstream の 2 つが一般的な選択肢です。
  • リモートの新しい 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 pullgit push を実行すると、GitHub のユーザー名とパスワードの入力を求められます。 Git からパスワードの入力するダイアログが表示されたら、personal access token を入力します。 または、Git Credential Manager などの資格情報ヘルパーを使用することもできます。より安全な認証方法を優先して、Git のパスワードベースの認証が削除されました。詳しくは、「personal access token の作成」を参照してください。

資格情報ヘルパーを使用して、Git が GitHub と通信するたびに、GitHub ユーザー名と personal access token を記憶させることができます。

リモート 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)

トラブルシューティング: このようなリモート '[name]' はありません

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

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

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

リモート リポジトリの名前を変更する

git remote rename コマンドを使用して、既存のリモートの名前を変更します。

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

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

これらの例では、HTTPS を使用して複製することを前提としています (推奨)。

$ git remote -v
# View existing remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

$ git remote rename origin destination
# Change remote name from 'origin' to 'destination'

$ git remote -v
# Verify remote's new name
> destination  https://github.com/OWNER/REPOSITORY.git (fetch)
> destination  https://github.com/OWNER/REPOSITORY.git (push)

トラブルシューティング: 構成セクションの 'remote.[古い名前]' を 'remote.[新しい名前]' に変更できませんでした

このエラーは、入力した古いリモート名が存在しないことを意味します。

git remote -v コマンドを使用すると、現在存在するリモートを確認できます。

$ git remote -v
# View existing remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

トラブルシューティング: リモート [新しい名前] は既に存在します

このエラーは、使用しようとしたリモート名がすでに存在する、という意味です。 これを解決するには、別のリモート名を使用するか、または元のリモートの名前を変更するかのいずれかです。

リモート リポジトリを削除する

git remote rm コマンドを使用して、リポジトリからリモート URL を削除します。

git remote rm コマンドは、次の 1 つの引数を受け取ります。

  • リモート名 (例: destination)

リポジトリからリモート URL を削除すると、ローカルおよびリモート リポジトリのリンクのみが解除されます。 リモート リポジトリは削除されません。

これらの例では、HTTPS を使用して複製することを前提としています (推奨)。

$ git remote -v
# View current remotes
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)
> destination  https://github.com/FORKER/REPOSITORY.git (fetch)
> destination  https://github.com/FORKER/REPOSITORY.git (push)

$ git remote rm destination
# Remove remote
$ git remote -v
# Verify it's gone
> origin  https://github.com/OWNER/REPOSITORY.git (fetch)
> origin  https://github.com/OWNER/REPOSITORY.git (push)

: git remote rm リモート リポジトリをサーバーから削除しないでください。 リモートとその参照がローカル リポジトリから削除されるだけです。

トラブルシューティング: 構成セクションの 'remote' [名前]' を削除できませんでした。

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

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

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

参考資料