Git Rebase로 commit 합치기

Octopus·2022년 4월 19일
0

git

목록 보기
1/1


종종 git 커밋을 올리고 난 뒤, 빼먹은 코드나 까먹은 작업이 기억나서 바로 새 커밋으로 올릴 때가 있다.

하지만, github 저장소에서 commit history를 보면 너무 더러워서 참을 수가 없다.

사실, 자주 그러는것도 아니고 막상 그런 행위를 한다고 하더라도 귀찮아서 rebase 작업은 잘 안하다가, 가끔 너무 참을 수 없을 때, 구글링을 해서 고치곤 하는데, 이러다보니 매번 까먹는다.
고로 정리해봐야겠다.


먼저 one->two->three->four(마지막커밋)순으로 커밋이 있다고 친다.

그 다음,

git rebase -i HEAD~4

를 입력하면

최근 커밋을 포함한 4개의 커밋이 리스트에 등장한다.
여기서, 3개의 커밋인 two, three, four 커밋을 one커밋으로 합친다고 하면,

'pick'을 's'나 'squash'로 변경 후 ESC키->:wq 입력하면 저장 후 vim 입력창을 빠져나오게 된다.

  • 여기서 wq를 한글로 바꾸면 ㅈㅂ이다. 난 ㅈㅂ이다.

그리고 다시 vim 입력창이 뜨는데, 합친 커밋 메시지를 어찌할 지 적는 부분이다.

i키를 눌러 입력모드 전환 후,

나는 이렇게 작성했다.

다시 ESC키->:wq를 입력하고 저장 후 빠져나오면


성공적으로 rebase했다는 메시지가 출력된다.
이제 이 작업을 원격 저장소에 최종적으로 push 해야하는데,
일반적인 git push origin master 명령어를 실행하면 [rejected] 가 출력되어 입구컷을 때린다.

git push -f origin master

(-f: force, 압도적인 힘으로) 명령어로 진행한다.


고러면 이렇게 1개의 커밋으로 합쳐진 것을 확인할 수 있다.

당연히 공동 프로젝트에서 구성원들과 합의되지 않은 채로 master(main) 브랜치에 이런 짓을 했다간 즉시 곤봉찜질.

profile
잡식 개발자, 주 식은 안드로이드

0개의 댓글