Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

リポジトリを複製する

To maintain a mirror of a repository without forking it, you can run a special clone command, then mirror-push to the new repository.

Note: If you have a project hosted on another version control system, you can automatically import your project to GitHub using the GitHub Importer tool. For more information, see "About GitHub Importer."

Before you can push the original repository to your new copy, or mirror, of the repository, you must create the new repository on GitHub.com. 以下の例では、exampleuser/new-repository および exampleuser/mirrored がミラーです。

リポジトリをミラーする

  1. ターミナルターミナルGit Bashを開いてください。
  2. リポジトリのベアクローンを作成します。
    $ git clone --bare https://github.com/exampleuser/old-repository.git
  3. 新しいリポジトリをミラープッシュします。
    $ cd old-repository.git
    $ git push --mirror https://github.com/exampleuser/new-repository.git
  4. 先ほど作成した一時ローカルリポジトリを削除します。
    $ cd ..
    $ rm -rf old-repository.git

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

  1. ターミナルターミナルGit Bashを開いてください。
  2. リポジトリのベアクローンを作成します。 ユーザ名の例をリポジトリを所有する人や Organization の名前に置き換え、リポジトリ名の例を複製したいリポジトリの名前に置き換えてください。
    $ git clone --bare https://github.com/exampleuser/old-repository.git
  3. クローンしたリポジトリに移動します。
    $ cd old-repository.git
  4. リポジトリの Git Large File Storage オブジェクトをプルします。
    $ git lfs fetch --all
  5. 新しいリポジトリをミラープッシュします。
    $ git push --mirror https://github.com/exampleuser/new-repository.git
  6. リポジトリの Git Large File Storage オブジェクトをミラーにプッシュします。
    $ git lfs push --all https://github.com/exampleuser/new-repository.git
  7. 先ほど作成した一時ローカルリポジトリを削除します。
    $ cd ..
    $ rm -rf old-repository.git

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

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

  1. ターミナルターミナルGit Bashを開いてください。

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

    $ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git
  3. プッシュの場所をミラーに設定します。

    $ cd repository-to-mirror
      $ git remote set-url --push origin https://github.com/exampleuser/mirrored

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

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

    $ git fetch -p origin
    $ git push --mirror

参考リンク