みなさん、こんにちは。
ソースコードのバージョン管理システムとして、GitHubは今やデファクトスタンダードと言える存在です。
しかし、業務の都合やプロジェクトの状況によっては、GitHub以外のGitサーバーを利用している方も多いのではないでしょうか。私自身もその一人で、GitLabやBitbucketなど、さまざまなプラットフォームを使う機会があります。それでも最終的には、過去のコードを一元管理して検索や参照を容易にするため、GitHubにリポジトリを集約するようにしています。
そこで、今回は、GitHubに他のGitサーバーからリポジトリをインポートする方法をご紹介します。
具体的には、2つの主要な方法、①コマンドラインを使用する方法と②GitHubのウェブインターフェースを使用する方法、をステップごとに解説します。
検索すればすぐ方法が出てくるかもしれませんが、私自身がよく手順を忘れてしまうので、備忘録として残しておきますw
では、さっそく見ていきましょう。
なぜGitHubにリポジトリをインポートするのか?
GitHubにリポジトリを集約するメリットは多岐にわたります。
まず、過去のコードを一箇所で管理することで、プロジェクトの履歴を簡単に追跡できます。また、GitHubの強力な検索機能やコラボレーションツールを活用すれば、チームでの作業効率も向上します。さらに、オープンソースプロジェクトを公開する場合も、GitHubは多くの開発者にリーチできるプラットフォームとして最適です。
他のGitサーバーからリポジトリを移行する際、そのプロセスを正確に把握しておくことが重要です。
以下では、2つの方法を説明します。どちらもシンプルで、状況に応じて使い分けることができます。
方法1: コマンドラインを使用する方法
コマンドラインを使用する方法は、Gitの基本操作に慣れている方におすすめです。
この方法では、既存のリポジトリをローカルにクローンし、それをGitHubにプッシュする手順を踏みます。
以下に手順を示します。
手順1: 既存のリポジトリをクローンする
まず、元のGitサーバーからリポジトリをクローンします。
ここでは、–mirror オプションを使用することがポイントです。このオプションにより、リポジトリのすべてのブランチ、タグ、コミット履歴がそのままコピーされます。
通常の git clone とは異なり、作業ツリーを作成せず、リポジトリ全体をミラーリングする形になります。
git clone --mirror https://旧gitサーバー/username/repository.git
例えば、Bitbucketからクローンする場合は、次のようなURLになります。
git clone --mirror https://bitbucket.org/username/repository.git
コマンドを実行すると、repository.gitというディレクトリが作成されます。
手順2: GitHubの新しいリポジトリにリモートURLを変更する
次に、クローンしたリポジトリのディレクトリに移動し、リモートURLをGitHubの新しいリポジトリのURLに変更します。
まず、GitHubにログインし、新しい空のリポジトリを作成してください(初期化ファイルは不要です)。作成後、リポジトリのURL(例: https://github.com/username/new-repository.git)をコピーします。
ディレクトリに移動したら、以下のコマンドを実行します。
cd repository.gitgit remote set-url origin https://github.com/username/new-repository.git
このコマンドで、リモートの参照先が元のサーバーからGitHubに切り替わります。
手順3: GitHubにプッシュする
最後に、すべてのブランチとタグをGitHubにプッシュします。
ここでも –mirror オプションを使用することで、ミラーリングされたデータをそのままGitHubに反映できます。
git push --mirror
これで、元のリポジトリの内容がGitHubに完全に移行されます。
ブラウザでGitHubのリポジトリページを確認し、ブランチやコミットが正しく反映されているかチェックしてください。
方法2: GitHubのウェブインターフェースを使用する方法
コマンドラインに不慣れな方や、GUI操作を好む方には、GitHubのウェブインターフェースを使用する方法がおすすめです。
この方法では、GitHubが提供するインポート機能を利用して、リポジトリを簡単に移行できます。以下に手順を説明します。
手順1: GitHubにログインし、インポートページにアクセスする
まず、GitHubにログインします。
ログイン後、画面右上の「+」アイコンをクリックし、ドロップダウンメニューから「Import repository」を選択します。あるいは、直接以下のURLにアクセスしてもOKです。
このページが、インポートの開始地点となります。
手順2: 元のリポジトリのクローンURLを入力する
インポートページに移動すると、「Your old repository’s clone URL」という入力欄が表示されます。ここに、元のGitサーバーのリポジトリのクローンURLを入力します。
https://gitlab.com/username/repository.git
プライベートリポジトリの場合は、次の手順で認証情報が必要になります。パブリックリポジトリの場合は、そのまま進めます。
新しいリポジトリの名前や公開設定(Public/Private)もこのページで指定できます。
手順3: 必要に応じて認証情報を入力し、インポートを開始する
プライベートリポジトリをインポートする場合、ユーザー名とパスワード、またはパーソナルアクセストークンを入力する欄が表示されます。適切な認証情報を入力してください。
すべての情報を入力したら、「Begin import」をクリックします。GitHubが自動的にインポート処理を開始し、新しいリポジトリを作成します。処理が完了すると、登録したメールアドレスに通知が届きます。
なお、この方法では事前にGitHubでリポジトリを作成する必要はありません。インポート機能が新しいリポジトリを自動生成するため、手間が省けます。
注意点
リポジトリのインポートをスムーズに行うために、いくつかの注意点を押さえておきましょう。
- プライベートリポジトリのインポート
プライベートリポジトリを移行する場合、適切な認証情報が必要です。コマンドラインではURLに認証情報を埋め込むか、SSHキーを使用する方法もあります。ウェブインターフェースでは、入力欄に正確な情報を入力してください。 - 大きなリポジトリのインポート
リポジトリのサイズが大きい場合、インポートに時間がかかることがあります。特にウェブインターフェースを使用する際は、処理が完了するまで気長に待ちましょう。 - Git LFSの使用
Git LFS(Large File Storage)を使用しているリポジトリをインポートする場合、GitHub側でGit LFSを有効化する必要があります。インポート後に設定を確認し、必要に応じてgit lfs fetchやgit lfs checkoutを実行してください。
まとめ
今回は、GitHubに他のGitサーバーからリポジトリをインポートする2つの方法をご紹介しました。
コマンドラインを使用する方法は、Gitの操作に慣れている方に適しており、柔軟性が高いのが特徴です。一方、GitHubのウェブインターフェースを使用する方法は、初心者でも簡単に扱える手軽さが魅力です。
どちらの方法を選ぶにせよ、リポジトリの移行を通じてGitHubを最大限に活用し、コード管理を効率化しましょう。
この記事が、皆さんの開発作業の一助となれば幸いです。GitHubのUIは時折更新されることがあるため、最新の情報に基づいて手順を確認することもお忘れなく!
最後までお読みいただきありがとうございました。
それではよいGithubライフを!