このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

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

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

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://[hostname]/user/repo.git

例:

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

$ git remote -v
# 新しいリモートの検証
> origin  https://hostname/user/repo.git (fetch)
> origin  https://hostname/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://hostname/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://[hostname]/USERNAME/REPOSITORY.git
    • SSH を使うよう更新する場合、URL は以下のようになります:
      git@hostname:USERNAME/REPOSITORY.git

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

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

Troubleshooting: No such remote '[name]'

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

$ git remote set-url sofake https://hostname/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://hostname/オーナー/リポジトリ.git (fetch)
> origin https://hostname/オーナー/リポジトリ.git (push)

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

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

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

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

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

$ git remote -v
# 既存のリモートを表示
> origin  https://hostname/コードオーナー/リポジトリ.git (fetch)
> origin  https://hostname/コードオーナー/リポジトリ.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://hostname/オーナー/リポジトリ.git (fetch)
> origin  https://hostname/オーナー/リポジトリ.git (push)
> destination  https://hostname/フォーカー/リポジトリ.git (fetch)
> destination  https://hostname/フォーカー/リポジトリ.git (push)

$ git remote rm destination
# リモートの削除
$ git remote -v
# 削除されていることの検証
> origin  https://hostname/オーナー/リポジトリ.git (fetch)
> origin  https://hostname/オーナー/リポジトリ.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'

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

参考リンク

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