콘텐츠로 이동

gitlab 서로다른 레포지토리 병합 미러링

1. 상황 및 작업배경

상황 설명

내부에서 개발하고 있던 api 깃프로젝트 소스가 있었는데, 별도의 TF 프로젝트가 발생하였고 이에 따라 깃프로젝트 이중 작업이 불가피하여 TF 프로젝트용으로 api 깃프로젝트를 복제하여 새 구성을 하였습니다. 하여 내부적으로 api 깃프로젝트와 tf api 깃프로젝트가 생겨난 상황이었는데. api 깃프로젝트에서 진행된 내용이 tf api 깃프로젝트로 옮겨져야 하는 상황이 생겼습니다.

대상 프로젝트

  • A 프로젝트 release 브랜치
  • B 프로젝트 main 브랜치

2. 이관 전략

napkin-selection.png

이관 전략

  1. A 프로젝트 release 브랜치를 B 프로젝트로 미러링
  2. A 프로젝트의 release 브랜치를 B 프로젝트로 미러링하여 B 프로젝트에 동일한 브랜치를 생성하고 동기화
  3. B 프로젝트에서 main 브랜치로 main-target 브랜치 생성
  4. B 프로젝트의 main 브랜치로부터 main-target이라는 새 브랜치를 생성했습니다. 이 브랜치는 병합 작업의 대상 브랜치로 설정
  5. B 프로젝트에 미러링 된 release 브랜치를 main-target 브랜치와 병합
  6. B 프로젝트에 미러링된 A 프로젝트의 release 브랜치를 B 프로젝트의 main-target 브랜치와 병합
  7. 병합 된 main-target 브랜치를 검토
  8. 병합이 완료된 후, main-target 브랜치의 소스 코드를 검토하고, 이 과정에서 충돌을 해결하고 병합된 코드의 정상 작동 여부를 확인
  9. sync가 맞지 않는 소스 및 직접 처리건에 대하여 main-target 브랜치에 처리
  10. 병합 후 소스 코드의 Sync가 맞지 않는 부분과 직접 처리해야 할 내용을 main-target 브랜치에서 수정 및 보완
  11. 최종 main-target 브랜치를 main 브랜치로 병합
  12. 수정 및 검토가 완료된 main-target 브랜치를 B 프로젝트의 main 브랜치로 최종 병합

3. 결과

깃랩(GitLab) 미러링 기능을 이용하여 서로 다른 레포지토리로 브랜치를 이관하고 병합하는 작업의 정리 내용입니다.