본문 바로가기

Dev Tools

[Git] master 브랜치에 다른 브랜치 push(덮어쓰기) 하기

반응형

얼마전 개발 진행중인 프로젝트에 참여하게 되었습니다.

 git에서 소스코드를 검토하는데, master 브랜치가 보이지가 않습니다.

(저는  git tool로 GitKraken(깃크라켄) 사용합니다.)

스크롤 몇번 내리면 나올 줄 알았는데.... 보이지가 않네요.

화면 오른쪽에 리모트 브랜치 목록에서 master 브랜치를 찾아서 클릭해보니...

6개월전에 master 브랜치가 머물러 있었습니다.

 

음.... 잠깐의 고민 후에.. 히스토리는 포기하고 master 브랜치에 최신 릴리즈 브랜치를 머지하기로 결정하였습니다.

머지는 간단하니까.. 클릭 몇번으로 릴리즈 브랜치를 머지를 했습니다.

그런데...., 테스트 빌드를 해보니.. 실패가 됩니다. 으잉?!

확인해보니.. 중간중간 revert한것들과.. 몇번의 꼬임들....로 인해 파일 누락이 생기고 있었습니다.

(이래서 손놓고 있었다고 하더라구요.. 에라이~ㅠㅠ)

 

그래서, release 브랜치를 master 브랜치에 강제 push(덮어쓰기)를 하기로 합니다.

이 부분은 GitKraken의 메뉴로는 작업이 어렵고, 터미널을 이용합니다.

 


 

1. GitKraken 상단 메뉴에 Terminal 을 선택해줍니다.

 

 

2. 아래 그림과 같이 터미널이 열리게 됩니다.

이제 커멘드를 입력하여 git 명령을 할수 있습니다.

 

 

3. git checkout "덮어쓰기를 할 브랜치"

덮어쓰기를 할 브랜치로 checkout 을 해줍니다.

 

 

4. git merge --strategy=ours "덮어쓰기를 당할 브랜치"

 

 

5. 위와 같이 입력하면 아래와 같이 merge 메시지를 입력하는 vi 에디터가 표시됩니다.

여기에 내용을 입력해도 되지만, 자동으로 입력된 내용이 있으니 다른 입력 없이 저장(:qw)을 하고 그대로 나갑니다.

 

 

6. 위와 같이 저장을 완료하고 나오게되면, 아래 그림과 같이 메시지를 받게됩니다.

(정상적으로 아래 메시지가 보이면 여기까지 잘 하신 겁니다.)

 

 

7. git checkout "덮어쓰기를 당할 브랜치"

덮어쓰기를 당할 브랜치로 checkout 을 해줍니다.

 

 

8. git merge -no-ff "덮어쓰기를 할 브랜치"

이제 실제 덮어쓰기를 실행합니다.

 

 

9. 또다시 merge 할때 코멘트를 입력하라고, vi 에디터가 실행됩니다.

여기도 :qw 그대로 저장하고 나옵니다.

 

 

10. 저장하고 나오면 후루루루룩~ 하고 처리되는 목록이 지나갑니다.

그리고 완료!!

 

 

아무런 메시지없이 위와같이 끝나게 되면 정상적으로 덮어쓰기가 완료된 것입니다.

 

이제 다시 빌드를 시도해보면, 와우~ 정상적으로 빌드가 되는 모습을 감상하실 수 있습니다.

속이 다 시원하네요.ㅎㅎ

 

반응형