프로젝트

(ProfitKey) git revert로 깃허브 충돌 이전으로 돌아가기

민톨이 2025. 3. 18. 23:54
728x90

문제 상황

팀원이 dev 브랜치에 올린 코드가 오류나는 코드인지 모르고 무작정 나의 작업물을 dev 브랜치에 머지하였고, 정신이 없어서 내 로컬에서 dev를 pull하고 컴파일을 하지 않은 채로 배포를 진행하였다가 스웨거가 502 Bad Gateway가 뜨는 문제에 직면하였다..

처음에는 개발서버 환경변수 오류인줄 알았으나 오류 코드를 보니 배치 스케쥴러 어쩌고~라고 떠있었다.

 

일단 급하게 작업을 해야 하는 상태이고, 스웨거가 안먹으니 프론트도 영향을 받기 때문에 빨리 해결해야겠다 싶어서 정상작동하던 170 티켓번호 이후 커밋들을 revert하는 작업을 했다.

 

*revert을 사용한 이유

이전에 팀원이 git reset --hard 명령어를 통해 롤백하다가 레포지토리상 일주일치 커밋들이 유실되는 사고가 있었기 때문에 ,,,

 

 

🌕 revert로 롤백하는 방법

 

일단 로컬 dev로 이동을 해서 원격 dev 최신 코드를 pull해와야한다.

 

대충 문제가 생긴 지점 이후의 커밋 해쉬코드를 확인하고

터미널 상에서 하나하나 해쉬코드를 넣어서 명령문을 작성해주면 된다.

 

*머지 코드의 경우에는 -m 1 / -m 2를 넣어줘야함

git revert --no-edit -m 1 bb1f11d

git revert --no-edit -m 2 bb1f11d

 

 

+ -m 1은 첫 번째 부모를 기준으로, -m 2는 두 번째 부모를 기준으로 되돌리게 된다.

   어느 부모를 기준으로 할지 선택해야 하는데, 보통 첫 번째 부모가 변경사항을 포함하는 경우가 많다.

 

일반 커밋의 경우에는 

git revert --no-edit 540d7b7
git revert --no-edit 573ea88
git revert --no-edit e08d5f9
git revert --no-edit bb1f11d
git revert --no-edit 20a9fb4
git revert --no-edit ebed174
git revert --no-edit e9c4288
git revert --no-edit 2bf38b2

 

이런식으로 진행하면 된다.

 

작업이 완료가 됐으면 git push origin dev 명령어로 푸시를 하고 잘 작동이 됐는지 확인해보면 된다.