728x90
1. 작업 흐름: 브랜치 전환을 이용한 서브모듈 충돌 처리
상황: dev -> prd 병합 중 src/assets/common 서브모듈 파일 충돌 발생
편법: 브랜치를 하나 만들어서 해당 브랜치에서 src/assets/common 충돌 상황을 추적하게 만들고 다른 브랜치로 이동해서 git status를 이용해서 충돌 처리
서브모듈같은 독립적인 저장조는 다른 브랜치에서도 git status를 인식이 가능하다고함. 이 편법을 이용
0단계: dev: dev-host-1, prd: prd-khs 로 브랜치 생성
1단계: prd-khs에서 병합 시작
- prd-khs 브랜치로 이동
git checkout prd-khs
2. prd-khs 브랜치에서 dev 병합 시도
- 이 시점에서 충돌이 발생
CONFLICT (submodule): Merge conflict in src/assets/common Automatic merge failed; fix conflicts and then commit the result.
git pull origin dev
- 충돌 상태 확인
git status
On branch prd-khs Unmerged paths: (use "git add <file>..." to mark resolution) both modified: src/assets/common
2단계: 충돌 해결
브랜치를 전환하여 충돌 해결 준비
git checkout dev-host-2
git status 확인:출력:
git status
On branch dev-host-2 Changes not staged for commit: modified: src/assets/common (new commits)
충돌 파일 처리 (dev 기준)
git checkout --ours src/assets/common git add src/assets/common
병합 커밋 생성
git commit -m "Resolve merge conflicts: keep dev's changes for src/assets/common"
3단계: 브랜치 전환 후 병합 상태 완료다시 prd-khs로 전환:
병합 커밋 확인 및 푸시
git checkout prd-khs
git push origin prd-khs
병합 상태를 리뷰 후 최종 병합 (Optional):
git checkout prd git merge prd-khs git push origin prd
728x90
'Git' 카테고리의 다른 글
[Git] 깃 저장소에서 여러 디렉토리 관리하려고 하고 하는데 어떤 디렉토리에 -> 표시가 생기고 해당 디렉토리가 들어가지 않는 문제 (0) | 2025.01.11 |
---|---|
여러 브랜치를 관리 해야 하고, git pull 함부로 써서 충돌 처리를 하기 힘들 때 좋은 방법 (0) | 2024.06.28 |
깃 체리픽 하는 방법 (0) | 2024.05.16 |
git 작업을 이전으로 되돌리는 방법들 (0) | 2023.11.20 |
Git : 여러 프로젝트들 모음에서 새로운 프로젝트 추가 시 문제 해결 방법 (3) | 2023.10.25 |