한 레포지터리에서 프론트엔드, 백엔드 폴더를 분리하여 공동 작업을 하고 있었다.
같은 기능을 동시에 개발하고 있어서, 백엔드 코드를 rebase 받아서 local에서 구동해보려고 했다.
그 과정에서 프/백 commit이 합쳐진 상태로 PR을 올리게 되었다.
즉,
1. 내가 작업하지 않은 커밋 또한 PR에 올라갔고,
2. 내가 백엔드 코드를 rebase한 시점 이후에 백엔드 코드가 수정되었을 경우, conflict가 예상되었다.
그러므로, 백엔드 commit history를 제거한 후, PR을 올리고자 했다.
그림으로 표현하면 다음과 같다.
아래처럼, 백엔드 코드가 사이에 끼어있어서, reset 할 수도 없는 상황이다.
위 상황을 아래와 같이 개선하고자 한다.
해결 방법
1. base target branch에서 sub-feature2를 판다.
2. 필요한 커밋만 cherry-pick 한다.
3. sub-feature1으로 force-push 한다.
명령어로 정리하면 다음과 같다.
git checkout -b sub-feature2
git cherry-pick front-commit-1-hash
git cherry-pick front-commit-2-hash
git push origin sub-feature2:sub-feature1 -f
그림으로 정리하면 다음과 같다.
'Tech > Sofeware Development' 카테고리의 다른 글
AWS EC2와 가비아 도메인 연결하기 [2/2] (with React) (3) | 2022.06.25 |
---|---|
AWS EC2 인스턴스로 웹 서버(react) 배포하기 [1/2] (3) | 2022.06.25 |
[React] Batching을 활용한 렌더링 최적화 (0) | 2022.05.20 |
[React] 함수형 컴포넌트는 왜 이벤트 부착 시점의 상태를 기억할까? (2) | 2022.05.03 |
TypeScript 레벨업 하기(feat. Utility Type 분석) (0) | 2022.04.08 |