반응형
문제 상황
프로젝트 개발을 하던 도중에 다음과 같은 문제가 발생했다.
API 2개를 연달아 개발하던 도중에, 먼저 개발한 API를 모두 개발하고 나서 그 다음 API를 개발하려고 했다.
- 먼저 개발한 API - A
- 이후 개발한 API - B
A, B 둘 다 같은 도메인을 사용하는 코드다 보니 Respository를 공통적으로 사용해야 했는다.
A를 모두 개발하여 Pull Request를 날렸지만 아직 Merge가 되지 않아, 다음 작업을 진행하려고 할 때 공통 코드를 사용하기 위해서 A의 commit을 그대로 이어가야 했던 것이다.
위와 같이 커밋 히스토리가 남겨졌고, 다른 작업자에 의해 Pull Request가 merge 되어 B의 Pull Request를 날리려고 했다.
하지만, B에는 A의 커밋 내역이 남아있어 그대로 Pull Requst를 날리면 Conflict가 발생하는 것이 분명했다. (실제 진행 해봤지만 발생했다.)
해결 방법
GPT에게 다음과 같이 물었다.
feature branch에서 main branch로 pull request를 날리려고 하고 있어.
이때 pull request를 날리려는 commit 내역에 이미 main branch에 존재하는 commit이 존재하는데, conflict가 나지 않도록 하려면 어떻게 해야해?
그 결과 다음과 같은 해결 방안을 제시해 주었다.
1. main branch 업데이트
git checkout main
git pull origin main
2. feature branch로 이동 후 Rebase
git checkout feature-branch
git rebase main
만약 rebase 과정에서 Conflict가 발생할 시, 다음과 같이 해결한다.
git add [conflicted-files]
git rebase --continue
3. feature branch 업데이트
git push origin feature-branch --force-with-lease
결과
잘 해결된 것을 확인할 수 있었다!
반응형