코드/Git

[Git] 브랜치 강제 머지

Yeah-Panda 2021. 12. 10. 13:16

가끔 하다 보면

develop 에서 파생된 브랜치지만 develop 과 내용이 너무 달라져서

최종 finish 머지를 진행하려고하면 어마무시한 conflict 가 발생하는 케이스가 있다.

 

최종 버전을 가진 브랜치(release 브랜치라고 하자) 가 기존 develop 의 모든 히스토리를 가지고 있고

충돌을 무시하고 release 브랜치로 다 덮어 쓰면 되는 상황이라면

강제 merge를 진행할 수 있다.

 

조금 무시무시한 상황이지만 release 브랜치 형상에 대해 전수 검증을 거친 결과물이라면

그래도 시도 할만 하다.

 

검색해보면 merge -X 뭐 이런거 있는데 다 복잡한 느낌이고

 

# upstream 공유 레파지토리 명칭
# 로컬 develop 브랜치에서 진행
git fetch upstream 

# release 는 최종 검증완료된 브랜치
git reset --hard upstream/release

 

이렇게 할수 있었다.

로컬에서 저렇게 진행하고 origin (fork 된 브랜치)/develop 로 푸시후 upstream/develop 에서 머지를 진행

큰 문제는 없었던 것으로 기억한다.

 

사실 당시에 할때 정확하게 어떤 커맨드를 썼는지 잘 기억이 안난다. (이미 2개월 전인가..)

reset 을 활용해서 했다는 기억만이 가물..