2014-07-09 3 views
1

github-development-repo 및 production-repo에 2 개의 git 저장소가 있습니다. 모든 일상 업무는 개발 - 레포에 맡겨져 있습니다. 프로덕션에 코드를 넣고 싶을 때마다 최신 변경 사항을 얻기 위해 프로덕션 - 레포를 동기화하고 거기에서 자동화를 프로덕션 환경에 배포하도록 설정했습니다.2 개의 github repo를 동기화하십시오.

지금까지는 development-repo를 production-repo에 복제했으며 모든 파일을 얻는데 문제가 없었습니다. 그러나 이제 개발 - 레포 (repo)에서 약간의 변화를 주었고, 나는 그것을 생산 - 레포 (repo)로 밀어 넣고 싶습니다.

내 production-repo에서 'git pull https://github.com/[organization]/development-repo.git'을 실행 해 보았습니다.하지만 병합 충돌에 대한 목록이 나와 있습니다.

어떤 git 명령을 사용해야합니까?

+0

왜 1 리포에 2 개의 분기가 아닌 다른 리포지토리를 사용합니까? 그것이 지점이 의도하는 바입니다. 두 가지 다른 repos를 사용하여 불필요하게 복잡한 작업을하고 있습니다. –

+0

git을 이해하기 때문에 어느 개발자가 실제로 코드를 프로덕션으로 푸시 할 수 있는지 제어해야하기 때문에 브랜치마다 액세스 권한을 설정할 수 없습니다. – user3323387

답변

0

다른 지점이 아닌 다른 저장소를 사용하기를 원한다면 로컬 개발 저장소에 두 개의 다른 원격 저장소를 설정하는 것이 좋습니다. 현재 저장소 레이아웃이 어떻게 생겼는지 추측하고 있습니다.

local development repository (LDR) --> remote development repository (RDR) 

local production repository (LPR) --> remote production repository (RPR) 

이것은 아마도 저장소 레이아웃을 표시하려는 것입니다. 첫 번째 레이아웃으로

local development repository --> remote development repository 
          \ 
           `-> remote production repository 

는 개발 저장소 및 생산 저장소는 동일한 파일을 공유 할 수 있습니다,하지만 그들은 완전히 다른 커밋이있다. 이렇게하면 매우 수동 작업이 동기화됩니다. 기본적으로 모든 파일을 LDR에서 LPR로 복사하고 새 커밋을 작성한 다음 RPR로 푸시해야합니다.

두 번째 레이아웃을 구현하려면 LDR 컨텍스트 내에서 git remote add <name_of_remote> <github_address> 명령을 발행 할 수 있습니다. 예를 들어 :

git remote add production https://github.com/[organization]/production-repo.git 

이것은 당신이 RPR에 LDR에 변경 사항을 밀어 싶습니다 때마다 git push production master를 호출 할 수있다.

참고 이미 LPR에서 RPR로 푸시했다면 조금 꼼짝 할 필요가 없습니다. 리포지토리가 완전히 다르므로 LDR에서 RPR로 전환하려고하면 이상한 경고 메시지가 표시됩니다. 그들이 내 머리 꼭대기에서 떨어져 있을지 확실하지 않습니다. GitHub에서 RPR을 삭제하고 다시 만들어야 할 수도 있습니다. 그 또는 항상 매우 위험한 force push을 사용할 수 있습니다.

+0

감사합니다. 바로 시도해 보겠습니다. – user3323387

+0

어떤 개발자가 프로덕션으로 푸시 할 수 있는지 제어해야하기 때문에 2 개의 별도 레포를 사용하고 있습니다. – user3323387

+0

언급 한대로 이미 LPR에서 RPR로 푸시했으나 Github에서 삭제하고 다시 작성합니다. – user3323387

관련 문제