본문 바로가기

소프트웨어 이야기/git

[git] REFLOG - REBASE 취소하기

REBASE를 취소하는 방법

잘못 리베이스된 git이 remote까지 반영된 경우, 이걸 취소해야하는 경우가 있다. 이때는 reflog와 reset을 사용하면 된다.


1. git reflog 브랜치명

이 명령문은 잘못 리베이스한 로컬 컴퓨터에서 실행해야한다. 그래야 리베이스 로그를 볼 수 있다. 

그리고 이 명령문은 그냥 로그를 보는 거여서, 막 쳐봐도 된다. 무서워할 필요 없다.


2. git reset -- hard 128e6d4

reflog를 보고, 돌아가고 싶은 커밋명을 찾는다. 그다음 그 커밋명을 위에 명령문처럼 쓰고, 이전 커밋 이력을 모두 reset한다. 


3. git push -f origin 브랜치명

이렇게 리셋한 커밋이력을 리모트로 강제 푸시를 해야한다. 그러니 -f 옵션을 추가한 후, git push를 해주면 된다.


참고 포스팅 :  How to undo a mistaken git rebase (LIFE SAVER)



태그