Gitlab에 미러 깃 허브


11

로컬 gitlab에서 프로젝트 nova ( https://github.com/openstack/nova ) 사본을 작성했습니다 .

로컬 nova repo를 github과 동기화하여 시간당 또는 하루에 한 번 업데이트하는 방법은 무엇입니까?

나는 bitnami에 대해 여기에 설명 된 것과 비슷한 솔루션을 원합니다 : http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

OpenStack을 설치하기 위해 Devstack을 사용했습니다.

답변:


6

GitLab이제이 기능을 내장하고 있습니다!
GitLab EE 8.2부터 지원됩니다 . 만세!

원격 저장소에서 당기기

업스트림 저장소에서 분기, 태그 및 커밋이 자동으로 업데이트되도록 저장소를 설정할 수 있습니다.
...

새 프로젝트를 작성할 때 "URL 별 저장소"에서 저장소를 가져 오도록 선택할 때 저장소 미러링을 사용할 수 있습니다. 가져올 Git 저장소의 전체 URL을 입력하고 미러 저장소 확인란을 클릭하십시오 .

GitLab 자동 미러링

기존 프로젝트의 경우 프로젝트의 설정 ➔ 리포지토리 를 방문하여 "원격 리포지토리에서 가져 오기"섹션을 검색 하여 미러 풀링을 설정할 수 있습니다 . "미러 저장소"상자를 체크하고 하단에 변경 사항 저장을 누르 십시오 .
...


1
Github에서와 부분 및 업데이트 것은 ... 완료 결코 교체를 제외하고 이들의 예를 사용하는 내가 정확히 따라, gitlab
MarcusJ

@MarcusJ 여기 정확히 동일합니다. 해결책을 찾았습니까?
MemphiZ

//git@gitlab.com : 나는 이렇게했다, 그러나 나는 생각하기 때문에 제가 한 것은 SSH의 형식으로 SSH URL을 사용하는 동안 그것은되었습니다의 사용자 이름 : RepoName.git
MarcusJ

난 그냥 당신의 repo 공용 인 경우 쉽게, 단지 gitlab 설정에서이 URL을 붙여 gitlab에 GitHub의에서 당겨,이 일을한다 만든 : https://github.com/yourGithubUserName/repoName.git다음 콤보 상자의 암호 방법을 선택하고 암호 텍스트 상자를 비워 둡니다
knocte

4

로컬 커밋이 필요 하지 않으면 다음 레시피가 작동합니다.

다음을 사용하여 리포지를 복제하십시오 --mirror.

git clone --mirror https://github.com/openstack/nova.git

그런 다음 cronjob에서 매시간 업데이트를 수행합니다.

0 * * * * cd /path/to/nova.git && git fetch

--mirror당신이 변경 사항을 병합 할 필요가 없습니다 이후 인출이 모든 로컬 심판을 업데이트 할 것 등의 방법으로 refspecs 설정합니다. 그의 repo에 밀어 커밋이 손실되는 것을 의미합니까 물론.


이것은 GitLab에서 거울을 얻는 질문에 대답하는 것처럼 보이지 않습니다.
Ken Williams


0

저장소를 업데이트하는 크론 작업 작성


gitlab에서 설정하는 방법?
user186107

2
필요한 세부 정보, 시도한 내용 및 정확한 문제로 질문을 업데이트하십시오.
Drew Khoury

0

cron 작업을 사용하여이 작업을 수행 할 수 있습니다 .

터미널에서 crontab -e(crontab을 편집하려면) 아래에 다음과 같이 새 줄을 추가하십시오.

* 0 * * * git clone ssh://username@hostname:port/repo

매일 자정에 클론을 실행합니다.


그것이 증분 업데이트되기를 바랍니다. 다시 다운로드 할 필요가 없습니다.
user186107
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.