リポジトリを複製する
フォークせずにリポジトリを複製するため、特別なクローンコマンドを実行して、新しいリポジトリにミラープッシュすることができます。
リポジトリを複製してリポジトリの新しいコピー、つまりミラーにプッシュできるようにするには、その前に 使用している GitHub Enterprise Serverインスタンス に新しいリポジトリを作成する必要があります。 以下の例では、exampleuser/new-repository
および exampleuser/mirrored
がミラーです。
リポジトリをミラーする
-
ターミナルターミナルGit Bashターミナル を開いてください。
-
リポジトリのベアクローンを作成します。
$ git clone --bare https://hostname/exampleuser/old-repository.git
-
新しいリポジトリをミラープッシュします。
$ cd old-repository.git $ git push --mirror https://hostname/exampleuser/new-repository.git
-
ステップ 1 で作成した一時ローカル リポジトリを削除します。
$ cd .. $ rm -rf old-repository.git
Git Large File Storageオブジェクトを含むリポジトリをミラーする
-
ターミナルターミナルGit Bashターミナル を開いてください。
-
リポジトリのベアクローンを作成します。 ユーザ名の例をリポジトリを所有する人や Organization の名前に置き換え、リポジトリ名の例を複製したいリポジトリの名前に置き換えてください。
$ git clone --bare https://hostname/exampleuser/old-repository.git
-
クローンしたリポジトリに移動します。
$ cd old-repository.git
-
リポジトリの Git Large File Storage オブジェクトをプルします。
$ git lfs fetch --all
-
新しいリポジトリをミラープッシュします。
$ git push --mirror https://hostname/exampleuser/new-repository.git
-
リポジトリの Git Large File Storage オブジェクトをミラーにプッシュします。
$ git lfs push --all https://github.com/exampleuser/new-repository.git
-
ステップ 1 で作成した一時ローカル リポジトリを削除します。
$ cd .. $ rm -rf old-repository.git
リポジトリを別の場所にミラーする
リポジトリを別の場所にミラーし、オリジナルの更新も取得したい場合は、ミラーをクローンして、定期的に変更をプッシュします。
-
ターミナルターミナルGit Bashターミナル を開いてください。
-
リポジトリのミラーしたベアクローンを作成します。
$ git clone --mirror https://hostname/exampleuser/repository-to-mirror.git
-
プッシュの場所をミラーに設定します。
$ cd repository-to-mirror.git $ git remote set-url --push origin https://hostname/exampleuser/mirrored
ベアクローンと同様に、ミラーしたクローンにはリモートブランチとタグがすべて含まれますが、ローカルの参照はすべてフェッチするたびに上書きされるため、常にオリジナルのリポジトリと同じ状態となります。 プッシュする URL を設定することで、ミラーへのプッシュが簡素化されます。 ミラーを更新するには、更新をフェッチしてプッシュします。
$ git fetch -p origin
$ git push --mirror