2016-11-22 23 views
-1

가장 좋은 방법을 묻는 방법을 모르겠지만 테스트 서버가 작동 중이며 프로덕션 서버가 있습니다. 우리는 주로 테스트 서버에서 개발 한 다음 기능을 사용하여 코드를 (수동으로) 프로덕션 서버로 푸시합니다.두 개의 개별 프로젝트/git repos를 하나의 마스터 프로젝트에 병합 하시겠습니까?

이제 우리는 git을 사용할 수있는 것으로부터 벗어나려고 생각 했으므로 모든 파일과 그물을 싸서 git repo를 만들었습니다. 테스트 서버가 설정되었습니다.

이제 어떻게 되나요? 프로덕션 서버에있는 파일 (다른 파일)에서 다른 git 저장소를 설정하십시오. 그때? 거기에서 두 repo를 하나의 repo로 병합 하시겠습니까? 나는이 부분에 익숙하지 않아 도움이 필요할뿐입니다.

참고 : 일부 개발자는 프로덕션 서버의 파일을 편집하고 테스트 서버로 파일을 이동하지 않습니다 (주로 작업중인 기능이 아직 완료되지 않았기 때문에). 이제는 새로운 변경 사항이 있습니다. 우리의 테스트 서버에서 업데이트되었으며 이제는 프로덕션으로 이동해야하는 새로운 변경 사항이 있습니다.

설명해 주시면 감사하겠습니다. 감사합니다. 도움을 주시면 감사하겠습니다!

+0

repos가 완전히 다른 경우? 만약 그렇다면 당신 compareBeyound 도구를 사용할 수있는 첫 번째 병합 – KOTIOS

답변

1

아래에 설명 된대로 접근합니다 (불행히도 두 개를 동기화하는 데 수작업이 많이 필요할 것입니다). 별도의 브랜치를 리셋하고 생성하는 이유는 싱크 후 단일 새 기능을 프로덕션으로 병합 할 수 있기 때문입니다.

  1. git remote add prod <url>
  2. 를 사용하여 로컬의 repo에서 새 원격으로 생산 REPO 추가 시험의 repo
  3. 의 로컬 복제본을 생성 생산 REPO를 가져 오기 프로덕션 서버에 대한 REPO 만들기 git fetch prod
  4. test에없는 파일이 prod에 존재하지 않으면 prod/master를 로컬 마스터에 병합하여 모든 충돌을 해결합니다.
  5. 로컬 브랜치를 생산 git reset --soft prod/master
  6. 병합 마스터 브랜치 모든 지점이 REPO을 테스트 할 수
  7. 밀어 모든 새로운 가지를 각각의 기능에 따라 한 작업 트리의 변경 지점을 만들고 커밋 (마스터는 --force이 필요합니다)

새로운 분기는 test/master가 아니라 prod/master를 기반으로하는 것이 중요합니다. 그렇지 않으면 다른 커밋을 수행하지 않고서도 프로덕션 환경으로 병합 할 수 없습니다 (이는 또한 git 재설정을 수행하고 별도의 브랜치를 작성한 이유이기도합니다).

파일이 마스터 서버에서 직접 작성되거나 편집되는 경우 파일을 커밋하고 다시 테스트에 병합해야합니다.

모든 개발자가 git을 사용하도록 관리하지 않으면 분기 관리 등보다 많은 시간을 소비하게 될 수 있으므로 repos를 더 쉽게 동기화 한 후에 작업 과정을 살펴 보는 것이 좋습니다. . Git은 불행히도 적합하지 않은 워크 플로우를 사용하고 있다면 좋은 해결책이 아니다.