Skip to main content

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

Platform navigation

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

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

  • リモート名 (例: origin)
  • リモート URL (例: https://.com/OWNER/REPOSITORY.git)

次に例を示します。

$ git remote add origin https://.com/OWNER/REPOSITORY.git
# Set a new remote

$ git remote -v
# Verify new remote
> origin  https://.com/OWNER/REPOSITORY.git (fetch)
> origin  https://.com/OWNER/REPOSITORY.git (push)

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

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

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

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

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

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

ヒント

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

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

  • 既存のリモート名。 たとえば、originupstream の 2 つが一般的な選択肢です。

  • リモートの新しい URL。 たとえば次のような点です。

    • HTTPS を使うよう更新する場合、URL は以下のようになります:
    https://.com/OWNER/REPOSITORY.git
    
    • SSH を使うよう更新する場合、URL は以下のようになります:
    [email protected]:OWNER/REPOSITORY.git
    

  1. [ターミナル][ターミナル][Git Bash] を開きます。

  2. ワーキングディレクトリをローカルプロジェクトに変更します。

  3. 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。

    $ git remote -v
    > origin  [email protected]:OWNER/REPOSITORY.git (fetch)
    > origin  [email protected]:OWNER/REPOSITORY.git (push)
    
  4. git remote set-url コマンドを使用して、リモートの URL を SSH から HTTPS に変更します。

    git remote set-url origin https://.com/OWNER/REPOSITORY.git
    
  5. リモート URL が変更されたことを検証します。

    $ git remote -v
    # Verify new remote URL
    > origin  https://.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://.com/OWNER/REPOSITORY.git (push)
    

次回、リモート リポジトリに git fetchgit pullgit push を実行すると、 のユーザー名とパスワードの入力を求められます。 Git からパスワードの入力するダイアログが表示されたら、personal access token を入力します。 または、Git Credential Manager などの認証情報ヘルパーを使用できます。 より安全な認証方法を優先し、Git のパスワードベースの認証が削除されました。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。

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

  1. [ターミナル][ターミナル][Git Bash] を開きます。

  2. ワーキングディレクトリをローカルプロジェクトに変更します。

  3. 変更したいリモートの名前を取得するため、既存のリモート一覧を表示します。

    $ git remote -v
    > origin  https://.com/OWNER/REPOSITORY.git (fetch)
    > origin  https://.com/OWNER/REPOSITORY.git (push)
    
  4. git remote set-url コマンドを使用して、リモートの URL を HTTPS から SSH に変更します。

    git remote set-url origin [email protected]:OWNER/REPOSITORY.git
    
  5. リモート URL が変更されたことを検証します。

    $ git remote -v
    # Verify new remote URL
    > origin  [email protected]:OWNER/REPOSITORY.git (fetch)
    > origin  [email protected]:OWNER/REPOSITORY.git (push)
    

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

$ git remote set-url sofake https://.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://.com/OWNER/REPOSITORY.git (fetch)
> origin  https://.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://.com/OWNER/REPOSITORY.git (fetch)
> destination  https://.com/OWNER/REPOSITORY.git (push)

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

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

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

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

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

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

  • リモート名 (例: destination)

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

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

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

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

メモ

git remote rm では、サーバーからリモート リポジトリは削除されません。 リモートとその参照がローカル リポジトリから削除されるだけです。

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

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

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