今回は、GitHub 上に公開されている他人のパブリックリポジトリを、自分のアカウントでプライベートリポジトリとして保持する方法を紹介します。
GitHub では、他人のリポジトリをフォーク(Fork)すると、そのままパブリックで公開される仕様になっています。プライベートに切り替えることは基本できないため、以下のいずれかの方法で対応しましょう。
なお、プライベートレポジトリにする場合はApache 2.0ライセンスやMITライセンスなどのオープンソースライセンスであることを確認してから行いましょう。
方法1: GitHub の Import 機能を使う
とりあえずコピーしたいという場合は、Import 機能を使いましょう。
- GitHub で Import repository を開く
- 右上の「+」アイコンから「Import repository」を選択するか、上記リンクを直接開く。
- 必要情報を入力する
- Your old repository’s clone URL: 元のパブリックリポジトリの URL を入力
- Owner / Repository name: 自分のアカウントと好きなリポジトリ名を設定
- Privacy: Private を選択
- 「Begin import」をクリック
- しばらく待つと、指定した内容のプライベートリポジトリが作成されます。
メリット
- ブラウザ上だけで完結するため、非常に簡単
- 元リポジトリのブランチをすべてコピー可能
デメリット
- 大規模リポジトリの場合、Import に時間がかかることもある
- mainブランチ(masterブランチ)だけほしい場合は面倒かも(僕はやり方わからなかった)
方法2: ローカルにクローンしてプライベートリポジトリに Push する
「すべてのブランチを引き継ぎたい」「タグも含めて完全にコピーしたい」という場合は、ローカルで操作したほうが柔軟です。
手順
- 元のリポジトリをローカルにクローン
git clone https://github.com/ユーザー名/元リポジトリ名.git
この時点で、元リポジトリの内容が手元にダウンロードされます。
2. 新規でプライベートリポジトリを作成(GitHub 上)
GitHub で「New」→「New Repository」を選択
リポジトリ名を入力して Private を指定
3. ローカルでリモートリポジトリの設定を変更してプッシュ
cd 元リポジトリ名 git remote remove origin git remote add origin https://github.com/自分のユーザー名/プライベートリポジトリ名.git git push -u origin main もしローカルのブランチが master なら git push -u origin master に読み替えるか、 git branch -M mainにしてローカルのブランチをmainにしておきます。
メリット
- mainブランチ(master ブランチ) だけコピーできる
- ブランチ名を自由に変更しながらプッシュできる
デメリット
- ローカル環境での作業が必要(Clone → Remote 設定 → Push)
- Git の操作に慣れていないと若干手順が煩雑
まとめ
- Import 機能 … 全ブランチやタグをそっくり残したいならこちら。
- ローカルにクローンしてプッシュ … デフォルトブランチだけをプライベートリポジトリに持っていきたいなら最もお手軽。
どちらも数ステップで完了しますが、最終的には「デフォルトブランチだけで十分か」「他のブランチ・タグも欲しいか」で選ぶのがおすすめです。ぜひ参考にしてみてください。