[Git] 실수로 Merge한 Pull Request 되돌리기

susu·2022년 11월 15일
2
post-thumbnail

문제 상황

Organization 레포를 개인 레포로 포크해서 커밋 후 Pull Request (이하 PR) 을 날리는 방식으로 운영되고 있었다.
그런데 어제 PR만 날려야 하는 상황에서 실수로 Auto Merge를 시켜버린 상황.

해결 방법

Revert

  1. Github PR 페이지 내에 활성화된 Revert 버튼 클릭 후 내역 PR
    (Revert 버튼을 클릭하고 이어지는 버튼을 그대로 클릭하면 된다.)

Revert 후 다시 PR을 시도했더니 conflict가 발생해서,
PR에 해당하는 커밋 내역을 개인 레포에서 아예 지워준 후 새로 커밋해서 PR을 해보기로 했다.

PR 날렸던 Commit 삭제

  1. 변경사항을 다른 곳에 백업해두고 변경에 해당하는 내역을 지워주거나 파일 삭제

  2. 개인 레포로 돌아와 git log -oneline으로 PR을 날렸던 커밋의 부모 커밋 번호 확인

  3. git reset --hard {커밋 번호} 로 HEAD를 부모 커밋으로 돌린다.

  4. git push --force origin {원격 브랜치명}으로 변경사항 푸시

    여기까지 하면 PR을 날렸던 최근의 커밋(들)이 날아가고,
    해당 커밋의 부모 커밋 상태로 레포가 롤백된다.

  5. 변경사항 다시 적용 후 커밋

  6. 원래대로 다시 PR 날리기

    Revert를 사용한 merge의 복구(?)는 흔적을 남긴다.
    실수했던 흔적까지 없애고 싶다면 다른 방법을 찾아보길 바란다.

마무리

여럿이서 같이 쓰는 레포를 잘못 건드려서 문제가 생기면 등에 식은땀이 쫙 흐르는데..
그래도 어찌어찌 잘 해결되어서 다행이다.
언제나 조심하고 또 조심해서 쓰기.
그거랑은 별개로 git 공부는 꾸준히 해야겠다는 생각이 든다.

profile
블로그 이사했습니다 ✈ https://jennairlines.tistory.com

0개의 댓글