元のリポジトリをリポジトリの新しいコピー ("ミラー") にプッシュするには、お使いの GitHub Enterprise Server インスタンス で新しいリポジトリを作成する必要があります。__ これらの例では、exampleuser/new-repository
または exampleuser/mirrored
はミラーです。
リポジトリをミラーする
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
リポジトリのベアクローンを作成します。
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
新しいリポジトリをミラープッシュします。
cd OLD-REPOSITORY git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
先ほど作成した一時ローカルリポジトリを削除します。
cd .. rm -rf OLD-REPOSITORY
Git Large File Storage オブジェクトを含むリポジトリをミラーする
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
リポジトリのベアクローンを作成します。 ユーザ名の例をリポジトリを所有する人や Organization の名前に置き換え、リポジトリ名の例を複製したいリポジトリの名前に置き換えてください。
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
クローンしたリポジトリに移動します。
cd OLD-REPOSITORY
-
リポジトリの Git Large File Storage オブジェクトをプルします。
git lfs fetch --all
-
新しいリポジトリをミラープッシュします。
git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
リポジトリの Git Large File Storage オブジェクトをミラーにプッシュします。
git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
-
先ほど作成した一時ローカルリポジトリを削除します。
cd .. rm -rf OLD-REPOSITORY
別の場所にあるリポジトリをミラーする
元のリポジトリから更新を取得するなど、別の場所にあるリポジトリをミラーする場合は、ミラーをクローンして定期的に変更をプッシュできます。
-
[ターミナル][ターミナル][Git Bash] を開きます。
-
リポジトリのミラーしたベアクローンを作成します。
git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
-
プッシュの場所をミラーに設定します。
cd REPOSITORY-TO-MIRROR git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED
ベアクローンと同様に、ミラーしたクローンにはすべてのリモートブランチとタグが含まれますが、フェッチするたびにすべてのローカルリファレンスが上書きされるため、常に元のリポジトリと同じになります。 プッシュする URL を設定することで、ミラーへのプッシュが簡素化されます。
-
ミラーを更新するには、更新をフェッチしてプッシュします。
git fetch -p origin git push --mirror