공식 github 미러 만들기


108

예를 들어 https://github.com/mirrors 에서와 같이 "실제 미러"로 표시되도록 외부 git 저장소에 대한 github 미러를 만드는 방법은 무엇입니까?

지금까지 다음을 사용하여 미러를 설정했습니다.

cd /path/to/bare/repository
git remote add --mirror github git@github.com:user/repo.git

포스트 수신 후크를 구성하여 git push --quiet github. 그러나 이렇게하면 github는 미러를 인식하지 못합니다.

repostiory 이름 아래에 "Mirrorred from"이 나타나도록 github 방식으로 수행하는 방법에 대한 아이디어가 있습니까?


2
github.com/apache/libcloud 미러 REPO의 또 다른 예를 들어, 아파치 LOL의 모든
콜린 스와

답변:


113

GitHub의 지원 팀과의 의사 소통을 기반으로 GitHub는 현재 사용자가 이러한 방식으로 저장소를 미러링하는 직접적인 메커니즘을 제공하지 않는다는 것을 발견했습니다.

그러나 조직의 일부인 저장소에 대해이 서비스를 설치하도록 GitHub에 요청할 수 있습니다. 그런 다음 GitHub는 기존 저장소를 이러한 미러로 구성하고 보유하고있는 전체 미러 수의 함수 인 간격으로 가져옵니다.

편집 : Stuart가 지적했듯이 GitHub는 더 이상 임의의 저장소 미러링 요청을 수락하지 않습니다. 남은 유일한 옵션은 내 질문에 게시 한 솔루션입니다. 즉, 수신 후 후크를 만들어 GitHub 저장소로 자동으로 푸시합니다.


9

https://github.com/mirrors 의 현재 콘텐츠로 판단하면 GitHub에서 더 이상 "공식 미러"를 수행하지 않는 것으로 보입니다. 오늘날 GitHub에 코드를 미러링하려는 대부분의 프로젝트는 Git 자체 와 같은 조직을 구성하기 때문 입니다. .

https://github.com/isaacs/github/issues/415 에도 기능 요청이 있습니다.


실제로 그중 일부에는 GitHub 미러링 저장소가 있습니다. 그들은 여전히하지만 당신이 프로젝트의 개발자 인 경우에만, 즉 "비공식"미러가 없습니다.
nyuszika7h

그리고 그들이 말했듯이 조직에만 해당됩니다.
nyuszika7h


4

Git 가져 오기 에 따르면 :

데모 목적으로 다음을 사용합니다.

  • extuser라는 외부 계정
  • ghuser라는 GitHub 개인 사용자 계정
  • repo.git이라는 GitHub 저장소

명령 줄 :

# Makes a bare clone of the external repository in a local directory  
$ git clone --bare https://githost.org/extuser/repo.git

# Pushes the mirror to the new GitHub repository
$ cd *repo.git*
$ git push --mirror https://github.com/ghuser/repo.git

# Remove the temporary local repository.
$ cd ..
$ rm -rf repo.git

1
git clone --bare과 의 차이점은 무엇입니까 git clone --mirror? 두 번째 변형이 여기에 더 적합하지 않습니까?
user7610 2017-03-02

0

미러링은 아니지만 Github 사용자 또는 조직의 전체 백업 (문제 및 기타 메타 데이터 포함)을 만들기 위해 중간 정도의 성공을 거둔 github-backup 이라는 도구를 사용했습니다 . README 파일 을 인용하려면 :

github-backup을 실행할 때마다 GitHub에서 새로운 포크를 찾습니다. 와 같은 이름을 사용하여 포크 용 저장소에 원격을 추가합니다 github_torvalds_subsurface. 모든 포크에서 가져옵니다.

각 포크에서 메타 데이터를 다운로드합니다. 이것은 "github"라는 브랜치에 저장됩니다. 각 포크는 torvalds_subsurface. 디렉토리 안에는 torvalds_subsurface/watchers. 주석과 같은 추가 디렉토리가있을 수 있습니다 torvalds_subsurface/comments/1..

github 브랜치에 대한 커밋을 따라 가면 시간이 지남에 따라 GitHub에서 어떤 정보가 변경되었는지 확인할 수 있습니다.

github 브랜치의 파일 형식은 현재 Haskell 직렬화 된 데이터 유형입니다. 이것은 평문이며, 가늘게 뜨면 읽을 수 있습니다.

제한 사항은 다음과 같습니다.

  • 개인 저장소 지원 없음
  • 스타, 팔로어 등과 같은 "사회적"물건은 없습니다.
  • 커밋 줄에 대한 메모는 지원되지 않습니다 (아직?)
  • 문제 라벨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.