상황
A는 피쳐 브랜치에서 개발 브랜치로 병합을 했습니다.
B는 개발 브랜치에 병합하는 과정 중 A 가 작업했던 이력을 롤백시켜 병합을 했습니다.
이 때, A의 코드를 어떻게 개발 브랜치에 되돌릴 수 있을까요?
고민
- 개발 브랜치에 이미 A의 커밋이 존재하기 때문에 체리픽을 할 수 없습니다.
- revert를 하자니 B의 병합 시점 이후에 추가된 커밋들이 많아 불가능 합니다.
- reset은 협업하는 깃에서는 사용을 지양해야 합니다.
- 리셋하고 강제 푸시를 하게 되면 다른 사람들의 브랜치의 헤드와 리모트 헤드가 달라지면서 소스가 꼬입니다.
해결
중요한 것은 새로운 커밋을 만들어야 하는 것입니다.
그래서 아래와 같은 절차로 진행하여 해결했습니다.
- 새로운 피쳐 브랜치를 생성
- A의 커밋과 똑같이 소스 코드를 수정 후 커밋 (새로운 커밋이 생성됨)
- 개발 브랜치에 피쳐 브랜치 병합