Skip to main content

リポジトリを複製する

リポジトリのミラーをフォークすることなく維持するには、特別なクローン コマンドを実行して、新しいリポジトリにミラープッシュします。

メモ

別の Git ベースのホスティング サービスでホストされているプロジェクトがある場合、GitHub Importer ツールを使用して、プロジェクトを GitHub に自動的にインポートできます。 詳しくは、「GitHub Importer について」をご覧ください。

元のリポジトリをリポジトリの新しいコピー ("ミラー") にプッシュするには、GitHub.com で_新しいリポジトリを作成する_必要があります。 これらの例では、exampleuser/new-repository または exampleuser/mirrored はミラーです。

リポジトリをミラーする

複数のOSを扱うターミナルを開く

  1. リポジトリのベアクローンを作成します。

    git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
    
  2. 新しいリポジトリをミラープッシュします。

    cd OLD-REPOSITORY
    git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  3. 先ほど作成した一時ローカルリポジトリを削除します。

    cd ..
    rm -rf OLD-REPOSITORY
    

Git Large File Storage オブジェクトを含むリポジトリをミラーする

複数のOSを扱うターミナルを開く

  1. リポジトリのベアクローンを作成します。 ユーザ名の例をリポジトリを所有する人や Organization の名前に置き換え、リポジトリ名の例を複製したいリポジトリの名前に置き換えてください。

    git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
    
  2. クローンしたリポジトリに移動します。

    cd OLD-REPOSITORY
    
  3. リポジトリの Git Large File Storage オブジェクトをプルします。

    git lfs fetch --all
    
  4. 新しいリポジトリをミラープッシュします。

    git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  5. リポジトリの Git Large File Storage オブジェクトをミラーにプッシュします。

    git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
    
  6. 先ほど作成した一時ローカルリポジトリを削除します。

    cd ..
    rm -rf OLD-REPOSITORY
    

別の場所にあるリポジトリをミラーする

元のリポジトリから更新を取得するなど、別の場所にあるリポジトリをミラーする場合は、ミラーをクローンして定期的に変更をプッシュできます。

複数のOSを扱うターミナルを開く

  1. リポジトリのミラーしたベアクローンを作成します。

    git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
    
  2. プッシュの場所をミラーに設定します。

    cd REPOSITORY-TO-MIRROR
    git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED
    

    ベアクローンと同様に、ミラーしたクローンにはすべてのリモートブランチとタグが含まれますが、フェッチするたびにすべてのローカルリファレンスが上書きされるため、常に元のリポジトリと同じになります。 プッシュする URL を設定することで、ミラーへのプッシュが簡素化されます。

  3. ミラーを更新するには、更新をフェッチしてプッシュします。

    git fetch -p origin
    git push --mirror
    

参考資料

  •         [AUTOTITLE](/desktop/making-changes-in-a-branch/pushing-changes-to-github-from-github-desktop#pushing-changes-to-github)
    
  •         [AUTOTITLE](/desktop/configuring-and-customizing-github-desktop/about-git-large-file-storage-and-github-desktop)