リポジトリを複製する
フォークせずにリポジトリを複製するため、特別なクローンコマンドを実行して、新しいリポジトリにミラープッシュすることができます。
ここには以下の内容があります:
- リポジトリをミラーする
- Mirroring a repository that contains Git Large File Storage objects
- Mirroring a repository in another location
リポジトリを複製してリポジトリの新しいコピー、つまりミラーにプッシュできるようにするには、その前に 使用している 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
Mirroring a repository that contains Git Large File Storage objects
-
ターミナルターミナル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
Mirroring a repository in another location
If you want to mirror a repository in another location, including getting updates from the original, you can clone a mirror and periodically push the changes.
-
ターミナルターミナル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
As with a bare clone, a mirrored clone includes all remote branches and tags, but all local references will be overwritten each time you fetch, so it will always be the same as the original repository. プッシュする URL を設定することで、ミラーへのプッシュが簡素化されます。 ミラーを更新するには、更新をフェッチしてプッシュします。
$ git fetch -p origin
$ git push --mirror