2

우리는이 : 일부 프로젝트에동기화는

  1. 원격 저장소를.
  2. 이전 원격 저장소와 동기화하려는 여러 원격 저장소.

첫 번째 프로젝트 (1)에서 뭔가가 푸시되면 다른 원격 저장소 (2)로 변경해야합니다.

첫 번째 repo에서 가져 와서 대상 리포지토리에 넣을 수 있습니다.

가장 간단한 방법은 무엇입니까?

감사합니다.

답변

2

사용자가 제어 할 수없는 상위 리포지토리에서 새 맨위 미러 리포지토리를 복제 할 수 있습니다 (예 : 로 :

git clone --bare --mirror git://github.com/whoever/whatever.git 

(사실, --mirror--bare을 의미하므로 --bare 엄격하게 필요하지 않습니다.)이 --mirror 옵션이 아니라 단지 원격에서 로컬 지점을 가지고 그들에게 가지를 원격 추적, 자식을보다 말한다 같은 이름의 원격 저장소에서 모든 브랜치를 미러링해야합니다.

git remote update 
git push --mirror --force repo1 
git push --mirror --force repo2 

이 그들이 베어 저장소를 가리키는 지 당신은 리모컨으로 repo1repo2을 추가 한 것으로 간주하고 :

그런 다음 그 저장소에서 다음 명령을 실행 자주 크론 작업을 설정할 수 있습니다 거울로만 사용하고 싶다는 것입니다. (후자의 요구 사항은 --force을 사용하고 있기 때문에 다른 사람들이 repo1 또는 repo2으로 작업을 푸는 경우 자동화 된 미러 푸시로 덮어 쓰게됩니다.)

+0

github 저장소에서이 작업을 시도했지만, 'git push - - 거울 - 힘 repo1' 내가있어 '치명적인 : refspec의 원격 부분은 유효한 이름에 있지 않습니다 : 능력^{ 치명적인 : 원격 끝이 예기치 않게 끊어진' –

+0

@ 앤드류 콘드 라토 비치 : 그건 이상 해요, 그것을 재생산하지 마십시오. 당신은'git show-ref'의 출력에서 ​​각 ref를 거쳐서 문제를 일으키는 특별한 ref가 있는지보고 싶을 것입니다. 'git push/head/test-branch : refs/heads/test-branch'와 함께. –

+0

문제는 repo1에 있었던 것 같습니다. 새로운 _empty_ repo 였으므로 심판원이 없었습니다. 'git push --all --force repo1' 명령이 성공했습니다. 왜 그런지 모르겠다 :) 사양 별 -이 플래그는 매우 유사하다. –

1

첫 번째 원격 리포지토리에 post-receive hook을 설정하면 첫 번째 원격 리포지토리에서 다른 각 리포지토리로 푸시됩니다.

+0

내 저장소에없는 저장소는 사용할 수 없습니다. 예를 들어 github 또는 gcode를 사용합니다. –

+0

음, GitHub은 최소한 특정 후크를 지원합니다. - http://help.github.com/post-receive-hooks/ – Amber

+0

하지만 내 저장소가 아닙니다 :) –