【Git】リポジトリのホスティング先を変更する

2024年5月27日

現在のホスティングサービスの機能やパフォーマンスに不満がある場合、より優れたサービスを提供するプラットフォームに移行することで作業効率が向上します。また、特定のチームやプロジェクトに適したコラボレーションツールを持つサービスに変更することで、チーム全体の生産性を向上させることが可能です。さらに、セキュリティやプライバシーポリシーの観点からより信頼できるサービスに移行することも重要です。

今回は、GitHubの特定のリポジトリを別のアカウントのリポジトリに移動する作業を進めてみましょう

ホスティング先を変更するイメージ

リポジトリのホスティング先を変更するとは、ローカルと同期するホスティング先を変更することを言います

ホスティング先(リモート先)

クラウド上のGitHubが有名です

ローカル(ネットワークにつながっていない状態でもアクセスできる環境)

ローカルは開発用のパソコンになります

変更作業:GitHub Desktop(GUI)で実行する場合

Gitでリポジトリのホスティング先を変更するには、以下の手順を行います

GitHub Desktopを使用してリポジトリのホスティング先を変更するには、以下の手順を行います。

新しいホスティング先での作業

新しいリモートリポジトリの作成

事前に移行先のGitHubアカウントが取得されていることとします

クラウド上のGitHubにサインインし、下のように+のプルダウンメニューからNew repositoryで作成します

登録画面が出てきますので、必要な箇所を入力してCreate Repositoryで作成します

次のような画面になれば、空のリポジトリの完成です

最初に、新しいホスティングサービス(GitHub、GitLab、Bitbucketなど)にアクセスし、新しいリポジトリを作成します。GitHub Desktop自体では新しいリポジトリを作成できないため、Webブラウザを使用してこれを行います。

GitHubDesktopでの作業

GitHubアカウントを移行先のアカウントに変更

GitHubDesktopのファイルメニューを開き、Options…を選択

アカウントを移行先のGitHubアカウントに変更します

GitHub Desktopで移行したい既存のリポジトリを選択する

GitHub Desktopを開き、変更したいローカルリポジトリを選択します。

リポジトリ設定項目でリモート先を変更

リポジトリメニューを開き、「リポジトリの設定」を選択します。

「リモート」タブをクリックします。

現在のリモートURLが表示されます。これを新しいリポジトリのURLに変更します。

新しいURLを入力したら、「保存」をクリックします。

変更をプッシュする

リポジトリに未コミットの変更がある場合はコミットしておきます

「パブリッシュ」ボタンをクリックして、変更を新しいリモートリポジトリにプッシュします。

これらの手順で、GitHub Desktopを使用してリポジトリのホスティング先を変更できます。新しいリモートリポジトリに以前のコミット履歴が含まれていることを確認してください。また、チームメンバーやCI/CDパイプラインなど、関連する外部システムも新しいリポジトリURLに更新する必要があるかもしれません。

変更作業:コマンドで実行する場合

GitHub Desktopでビジュアルでの作業ではなく、コマンドライン(ターミナル)で実行する場合になります

新しいホスティングサービスにリポジトリを作成する

まず、新しいホスティングサービス(GitHub、GitLab、Bitbucketなど)で空のリポジトリを作成します。

ローカルリポジトリでリモートURLを変更する

既存のリポジトリでリモートURLを新しいホスティングサービスのURLに変更します。これには以下のコマンドを使用します。

git remote set-url origin 新しいリポジトリのURL

ここで、「新しいリポジトリのURL」は、新しいホスティングサービスに作成したリポジトリのURLです

最新のコードを新しいリポジトリにプッシュする

git push -u origin master

ここで「master」は、プッシュしたいブランチの名前です。異なるブランチ名を使用している場合は、それに応じてコマンドを変更してください。

これらの手順により、リポジトリのホスティング先を新しいサービスに変更できます。ただし、既存のホスティングサービスに特有の設定(たとえばGitHubの特定のファイルや設定)がある場合は、それらを新しいホスティングサービスに適用する必要があるかもしれません。また、チームメンバーやCI/CDパイプラインなど、外部のシステムも新しいリポジトリURLに更新する必要があります