チュートリアル: GitリモートURLを更新する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitリモートリポジトリのURLを更新するのは、次のような場合です:
- 別のGitリポジトリホストから既存のプロジェクトをインポートした場合。
- 新しいドメイン名で、組織がプロジェクトを新しいGitLabインスタンスに移行した場合。
- プロジェクトが同じGitLabインスタンス内の新しいパスに名前変更された場合。
古いリモートリポジトリからの既存のローカル実行コピーがない場合は、このチュートリアルは不要です。代わりに、新しいGitLabのURLからプロジェクトをクローンできます。
このチュートリアルでは、ローカルリポジトリのリモートURLを、次のことを行わずに更新する方法について説明します:
- 未完了のローカルでの変更を失うことなく。
- GitLabにまだ公開されていない変更を失うことなく。
- 新しいURLからリポジトリの新しいクローン実行コピーを作成せずに。
このチュートリアルでは、git-remoteコマンドを使用してリモートおよび追跡されたリポジトリを管理します。
GitリモートURLを更新するには、以下を実行します:
はじめる前
以下が必要です:
- Gitリポジトリと新しいGitLabのURLを持つGitLabプロジェクト。
- 新しいGitLabのURLに移行するプロジェクトのクローン作成されたローカル実行コピー。
- Gitがローカルマシンにインストールされていること。
- ローカルマシンのコマンドラインインターフェース(CLI)へのアクセス。macOSでは、ターミナルを使用できます。Windowsでは、PowerShellを使用できます。Linuxユーザーはおそらく、システムのCLIをよくご存じでしょう。
- GitLabの認証情報:
- GitリモートURLを更新するには、GitLabで認証する必要があります。GitLabアカウントでユーザー名とパスワードによる基本的な認証を使用している場合は、2要素認証(2FA)を無効にして、CLIから認証を行う必要があります。または、SSHキーを使用してGitLabで認証することもできます。
既存および新規URLを特定
GitリモートURLを更新するには、リポジトリの既存および新しいURLを特定します:
ターミナルまたはコマンドプロンプトを開きます。
ローカルリポジトリの実行コピーに移動します。ディレクトリを変更するには、
cdを使用します:cd <repository-name>各リポジトリには、
originというデフォルトのリモートがあります。現在のリモート_フェッチ_および_プッシュ_ URLをリモートリポジトリで表示するには、以下を実行します:git remote -v返されたURLをコピーしてメモしておきます。通常、これらは同一です。
新しいURLを取得します:
- GitLabに移動します。
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 左側のサイドバーで、コード > リポジトリを選択して、プロジェクトのリポジトリページに移動します。
- 右上隅でコードを選択します。
gitでの認証とクローン作成に使用する方法に応じて、HTTPSまたはSSH URLのいずれかをコピーします。不明な場合は、前の手順のoriginURLと同じ方法を使用します。- コピーしたURLをメモしておきます。
GitリモートURLを更新する
GitリモートURLを更新するには:
ターミナルまたはコマンドプロンプトを開きます。
ローカルリポジトリの実行コピーに移動します。ディレクトリを変更するには、
cdを使用します:cd <repository-name>リモートURLを更新し、
<new_url>をコピーした新しいリポジトリURLに置き換えます:git remote set-url origin <new_url>リモートURLの更新が成功したことを確認します。次のコマンドは、フェッチとプッシュの両方の操作に対して新しいURLを表示し、ローカルブランチをリストし、GitLabに追跡されていることを確認します:
git remote show origin- 更新が失敗した場合は、前の手順に戻り、正しい
<new_url>があることを確認して、もう一度試してください。
- 更新が失敗した場合は、前の手順に戻り、正しい
複数のリポジトリのリモートURLを更新するには:
git remote set-urlコマンドを使用します。originを、更新するリモートの名前に置き換えます。例:git remote set-url <remote_name> <new_url>各リモートURLの更新を確認します:
git remote show <remote_name>
リモートURLを更新した後、通常どおりGitコマンドを引き続き使用できます。次のgit fetch、git pull、またはgit pushはGitLabからの新しいURLを使用します。
おめでとうございます。リポジトリのリモートURLが正常に更新されました。
(オプション)元のリモートURLを保持
プロジェクトには、複数のリモートの場所がある場合があります。たとえば、GitHubでホストされているプロジェクトからフォークしたリポジトリがあり、GitHubにプルリクエストを行う前にGitLabで自分のフォークで作業したいとします。
元のリモートURLを更新に加えて保持し、新旧両方のリモートURLを維持するには、既存のリモートを変更する代わりに、新しいリモートを追加できます。
このアプローチを使用すると、元のリポジトリへのアクセスを維持しながら、新しいURLに段階的に移行できます。
新しいリモートURLを追加するには:
ターミナルまたはコマンドプロンプトを開きます。
ローカルリポジトリの実行コピーに移動します。
新しいリモートURLを追加します。
<new_remote_name>を新しいリモートの名前に置き換えます(たとえば、new-origin)、<new_url>を新しいリポジトリURLに置き換えます:git remote add <new_remote_name> <new_url>新しいリモートが追加されたことを確認します:
git remote -v
これで、元のリモートと新しいリモートの両方を使用できます。例:
- 元のリモートにプッシュするには:
git push origin main - 新しいリモートにプッシュするには:
git push <new_remote_name> main