원래 리포지토리를 리포지토리의 새 복사본 또는 _미러_로 푸시하려면 먼저 GitHub Enterprise Server 인스턴스에 새 리포지토리를 만들어야 합니다. 이러한 예제에서 exampleuser/new-repository
또는 exampleuser/mirrored
는 미러입니다.
리포지토리 미러링
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
리포지토리의 베어 복제본을 만듭니다.
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
새 리포지토리에 미러 푸시합니다.
cd OLD-REPOSITORY.git git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
이전에 만든 임시 로컬 리포지토리를 제거합니다.
cd .. rm -rf OLD-REPOSITORY.git
Git 대용량 파일 스토리지 개체가 포함된 리포지토리 미러링
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
리포지토리의 베어 복제본을 만듭니다. 예제 사용자 이름을 리포지토리를 소유한 사람 또는 조직의 이름으로 바꾸고, 예제 리포지토리 이름을 복제하려는 리포지토리의 이름으로 바꿉니다.
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
방금 복제한 리포지토리로 이동합니다.
cd OLD-REPOSITORY.git
-
리포지토리의 Git 대용량 파일 스토리지 개체를 끌어옵니다.
git lfs fetch --all
-
새 리포지토리에 미러 푸시합니다.
git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
리포지토리의 Git 대용량 파일 스토리지 개체를 미러에 끌어옵니다.
git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
-
이전에 만든 임시 로컬 리포지토리를 제거합니다.
cd .. rm -rf OLD-REPOSITORY.git
다른 위치에서 리포지토리 미러링
원래 위치에서 업데이트를 가져오는 것을 포함하여 다른 위치에 리포지토리를 미러링하려는 경우 미러를 복제하고 변경 내용을 주기적으로 푸시할 수 있습니다.
-
Terminal(터미널)Terminal(터미널)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