{"meta":{"title":"リポジトリを複製する","intro":"リポジトリのミラーをフォークすることなく維持するには、特別なクローン コマンドを実行して、新しいリポジトリにミラープッシュします。","product":"リポジトリ","breadcrumbs":[{"href":"/ja/repositories","title":"リポジトリ"},{"href":"/ja/repositories/creating-and-managing-repositories","title":"リポジトリの作成と管理"},{"href":"/ja/repositories/creating-and-managing-repositories/duplicating-a-repository","title":"リポジトリを複製する"}],"documentType":"article"},"body":"# リポジトリを複製する\n\nリポジトリのミラーをフォークすることなく維持するには、特別なクローン コマンドを実行して、新しいリポジトリにミラープッシュします。\n\n> \\[!NOTE]\n> 別の Git ベースのホスティング サービスでホストされているプロジェクトがある場合、GitHub ツールを使用して、プロジェクトを GitHub Importer に自動的にインポートできます。 詳しくは、「[GitHub Importer について](/ja/migrations/importing-source-code/using-github-importer/about-github-importer)」をご覧ください。\n\n元のリポジトリをリポジトリの新しいコピー (\"ミラー\") にプッシュするには、GitHub.com で\\_新しいリポジトリを作成する\\_必要があります。[](/ja/repositories/creating-and-managing-repositories/creating-a-new-repository) これらの例では、`exampleuser/new-repository` または `exampleuser/mirrored` はミラーです。\n\n## リポジトリをミラーする\n\n1. <span class=\"platform-mac\">\\[ターミナル]</span><span class=\"platform-linux\">\\[ターミナル]</span><span class=\"platform-windows\">\\[Git Bash]</span> を開きます。\n\n2. リポジトリのベアクローンを作成します。\n\n   ```shell\n   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git\n   ```\n\n3. 新しいリポジトリをミラープッシュします。\n\n   ```shell\n   cd OLD-REPOSITORY\n   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git\n   ```\n\n4. 先ほど作成した一時ローカルリポジトリを削除します。\n\n   ```shell\n   cd ..\n   rm -rf OLD-REPOSITORY\n   ```\n\n## Git 大容量ファイルストレージ オブジェクトを含むリポジトリをミラーする\n\n1. <span class=\"platform-mac\">\\[ターミナル]</span><span class=\"platform-linux\">\\[ターミナル]</span><span class=\"platform-windows\">\\[Git Bash]</span> を開きます。\n\n2. リポジトリのベアクローンを作成します。 ユーザ名の例をリポジトリを所有する人や Organization の名前に置き換え、リポジトリ名の例を複製したいリポジトリの名前に置き換えてください。\n\n   ```shell\n   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git\n   ```\n\n3. クローンしたリポジトリに移動します。\n\n   ```shell\n   cd OLD-REPOSITORY\n   ```\n\n4. リポジトリの Git 大容量ファイルストレージ オブジェクトをプルします。\n\n   ```shell\n   git lfs fetch --all\n   ```\n\n5. 新しいリポジトリをミラープッシュします。\n\n   ```shell\n   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git\n   ```\n\n6. リポジトリの Git 大容量ファイルストレージ オブジェクトをミラーにプッシュします。\n\n   ```shell\n   git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git\n   ```\n\n7. 先ほど作成した一時ローカルリポジトリを削除します。\n\n   ```shell\n   cd ..\n   rm -rf OLD-REPOSITORY\n   ```\n\n## 別の場所にあるリポジトリをミラーする\n\n元のリポジトリから更新を取得するなど、別の場所にあるリポジトリをミラーする場合は、ミラーをクローンして定期的に変更をプッシュできます。\n\n1. <span class=\"platform-mac\">\\[ターミナル]</span><span class=\"platform-linux\">\\[ターミナル]</span><span class=\"platform-windows\">\\[Git Bash]</span> を開きます。\n\n2. リポジトリのミラーしたベアクローンを作成します。\n\n   ```shell\n   git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git\n   ```\n\n3. プッシュの場所をミラーに設定します。\n\n   ```shell\n   cd REPOSITORY-TO-MIRROR\n   git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED\n   ```\n\n   ベアクローンと同様に、ミラーしたクローンにはすべてのリモートブランチとタグが含まれますが、フェッチするたびにすべてのローカルリファレンスが上書きされるため、常に元のリポジトリと同じになります。 プッシュする URL を設定することで、ミラーへのプッシュが簡素化されます。\n\n4. ミラーを更新するには、更新をフェッチしてプッシュします。\n\n   ```shell\n   git fetch -p origin\n   git push --mirror\n   ```\n\n## 参考資料\n\n* [GitHub Desktop から GitHub に変更をプッシュする](/ja/desktop/making-changes-in-a-branch/pushing-changes-to-github-from-github-desktop#pushing-changes-to-github)\n* [GitLarge File Storage および GitHub Desktop について](/ja/desktop/configuring-and-customizing-github-desktop/about-git-large-file-storage-and-github-desktop)"}