はじめに
GitHubでリポジトリを別の場所にコピーまたは移動したい場合、主な方法として「フォーク」と「手動コピー」があります。この記事では、それぞれの方法を具体的に説明し、どちらを選ぶべきかの判断基準も紹介します。
方法①:リポジトリをフォークする
フォークは、オリジナルのリポジトリをコピーしつつ、オリジナルのリポジトリとの接続を保つ方法です。このため、オリジナルのリポジトリに変更があった場合でも、フォークしたリポジトリにそれらの変更を取り込むことができます
。
1. リポジトリにアクセスする
2. リポジトリをフォークする
リポジトリページの右上にある Fork ボタンをクリックします。
リポジトリをフォークするターゲットの組織またはアカウントを選択します。
3. オリジナルのと同期する
フォーク後、オリジナルのリポジトリに新しい変更があった場合、それらをフォークしたリポジトリに取り込みたいことがあります。その際には、以下の手順でアップストリームリモートを設定します:
git remote add upstream https://github.com/original-owner/repo.git
git fetch upstream
git merge upstream/main
この操作により、オリジナルのリポジトリの変更をフォークに反映させることができます。
方法②:リポジトリを手動でコピーする
オリジナルのリポジトリとは完全に独立したコピーを作成したい場合、リポジトリをクローンし、新しい場所にプッシュする「手動コピー」の方法があります。これにより、オリジナルリポジトリとのリンクが完全に切れた状態で、新しいリポジトリを作成できます。
1. リポジトリをクローンする
ターミナルを開き、リポジトリをローカルにクローンします:
git clone https://github.com/original-owner/repo.git
cd repo
2. リモートオリジンを削除する
オリジナルリポジトリとの接続を解除するために、リモートオリジンを削除します:
git remote remove origin
3. 新しいリポジトリを作成する
GitHubにアクセスし、新しい組織またはユーザーアカウントの下に新しいリポジトリを作成します
README や .gitignore を初期化しないでください。
4. 新しいリモートを追加する
新しいリポジトリをリモートオリジンとして追加します:
git remote add origin https://github.com/new-owner/new-repo.git
5. 新しい場所にプッシュします。
ローカルのコピーを新しいリポジトリにプッシュします:
git push -u origin main
どちらを使うのか
- フォーク :オリジナルリポジトリとの接続が維持されるため、オリジナルリポジトリの変更を簡単に取り込むことができます。しかし、完全に独立したリポジトリを必要とする場合には不向き
- 手動コピー :完全に独立したリポジトリを作成したい場合に適しています。ただし、オリジナルリポジトリの将来的な変更を取り込みたい場合は、手動で同期する必要がある
あなたが選ぶべき方法は、オリジナルリポジトリとのリンクを保つかどうかに依存します。フォークはリンクを保持したままのコピー、手動コピーは独立したリポジトリを作成する方法です。
まとめ
リポジトリを別の場所にコピーするには、フォークまたは手動コピーのいずれかの方法があります。用途に応じて、最適な方法を選択してください。