[git] squash 잘못했을 때 / rebase 취소

seo young park·2022년 2월 16일
5

git

목록 보기
3/3
post-thumbnail

🐛 squash

여러 개의 커밋을 하나로 묶고 싶을 때 squash를 사용한다.
그런데 브랜치를 확인해보니,

  • 내가 하고 싶었던 commit squash

  • 실제로 올라간 commit

어떤 commit들을 합친건 지 전혀 알 수가 없다.

git reflog, git reset

git reflog

git reflogrebase가 시작되기 직전 분기의 헤드 커밋을 확인할 수 있다.

HEAD@{4}가 rebase 실행 직전의 커밋임을 확인했다. git reset 명령어를 통해 분기를 재설정한다.

git reset HEAD@{4} --hard

그리고 rebase -i 옵션을 통해 다시 squash를 진행한다.

git rebase -i HEAD~3

이미 push를 한 상태이기 때문에 다시 브랜치에 강제로 push한다.

git push origin [브랜치명] --force

이제 어떤 commit들이 합쳐진 건지 확인할 수 있다.

2개의 댓글

comment-user-thumbnail
2022년 2월 16일

우오옹 너무 신기하군요 리베이스 칭찬스티커 오백개 드립니다~~

답글 달기
comment-user-thumbnail
2022년 2월 22일

우와앙ㅇ 리베이스 멋짐스티커 오백개 추가~

답글 달기