このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

リポジトリを複製する

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

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

リポジトリをミラーする

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

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

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

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

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

  1. ターミナルターミナルGit Bashを開いてください。
  2. リポジトリのミラーしたベアクローンを作成します。
    $ git clone --mirror https://hostname/exampleuser/repository-to-mirror.git
  3. プッシュの場所をミラーに設定します。
    $ cd repository-to-mirror
    $ git remote set-url --push origin https://hostname/exampleuser/mirrored

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

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

問題がまだ解決していませんか?