GitLab Master 브랜치 머지 후 되돌리기

팀에서 소스관리를 git으로 브랜치 단위로 운영하다보니 예견된 인재가 발생하여 해결할 수 있는 방법을 찾아봤는데 당연히 다행히 방법이 있다.

Gitlab 사용시 master 브랜치에 잘못 Merge 하고 Push까지 진행된 경우 잘못된 Merge 이전 시점으로 초기화 하는 방법.

※ Merge Request에서 Merge 버튼 클릭시 Remove Source Branch를 체크하여 Merge 한 경우, Remote에 있는 작업 브랜치도 삭제되었기 때문에 대상 브랜치가 로컬 브랜치로 존재하는지 확인 필요.

  1. master 브랜치에서 복구 시점 커밋 ID를 확인하여 Merge 전 시점으로 되돌림.
    git reset --hard {commit id}
    

ex) git reset --hard 3f1fcdb

  1. 초기화된 상태에서 push
    git push origin master
    

만약 push 되지 않을 경우 force push

git push origin +master

권한 문제가 발생할 경우 관리자에게 관련사항을 전달하여 권한을 부여받고 다시 force push 진행.
Remote에 작업 브랜치가 삭제되었다면 로컬 브랜치에서 push. 삭제되지 않았다면 이 과정은 건너띄어도 무방.

Merge된 기존 Merge Request 를 참고하여 Merge Request를 새로 작성.

참고
http://donggov.tistory.com/29
https://git-scm.com/docs/git-push#git-push---force