2014-10-20 4 views
1

2 git git 서버에서 하나의 저장소를 자동으로 동기화 (미러링)하는 방법을 찾고 있습니다. 불행히도 권한상의 이유로 단일 서버를 가질 수 없습니다.Git sync multiple masters

사람들은 변경 사항 (및 분기)을 서버 중 하나에 푸시 할 수 있어야하며 변경 사항은 다른 서버에서 자동으로 복제되어야합니다.

그 방법에 대한 아이디어가 있습니까?

많은 감사가 들어

+1

가능한 복제본 : http://stackoverflow.com/questions/14288288/gitlab-repository-mirroring –

답변

1

"Duplicating a Git repository"라는 제목으로 잘 설명되어 있습니다. 가져온 것 article :

원본에서 업데이트하는 것을 포함하여 다른 위치에서 저장소를 미러링하려는 경우 미러를 복제하고 주기적으로 변경 내용을 푸시 할 수 있습니다.

# Make a bare mirrored clone of the repository 
git clone --mirror https://github.com/exampleuser/repository-to-mirror.git 

# Set the push location to your mirror 
cd repository-to-mirror.git 
git remote set-url --push origin https://github.com/exampleuser/mirrored 

미러 된 클론은 모든 원격 브랜치와 태그를 포함하지만, 항상 원래 저장소와 동일합니다, 그래서 모든 로컬 참조, 당신은 가져올 때마다 덮어 쓰게됩니다. 푸시 URL을 설정하면 미러링을 간소화 할 수 있습니다. 미러를 업데이트하려면 cron 작업을 실행하여 자동화 된 업데이트 및 패치를 가져옵니다. 당신은 코드 또는 루비 스크립트를 통해이 문제를 자동화 할 경우

git fetch -p origin 
git push --mirror 

, 당신은 Git Duplicator 루비 보석을 사용하여뿐만 아니라 그것을 할 수 있습니다.

0

당신은 Jenkins 같은 일부 배포 시스템을 가지고있다. 여기서 서버를 추가하고 명령을 서버에 배치 할 수 있습니다.

예를 들어 SSH 용 일부 Jenkins 플러그인을 설치하거나 Chef/Puppet 또는 Capistrano와 같은 것을 사용할 수 있습니다. 몇 가지 도구가 있습니다.

+0

안녕하세요, 귀하의 회신에 감사드립니다. 리포지토리가 동기화 상태를 유지하도록하기 위해 Jenkins 서버에서 어떤 git 명령을 실행합니까? –