커밋을 여러 번 했는데, 불필요한 커밋일 수 있다. 가령
// commit message "console.log added"
+ console.log('HelloW orld!');
// commit message "fix typo"
- console.log('HelloW orld!');
+ console.log('Hello World!');
오타를 냈는데 모르고 커밋해버린 경우이다. 이런 경우 굳이 저 커밋을 살려놓고 커밋 두개로 갈라놓을 이유가 없다. 두 커밋의 변경사항을 합쳐버리는 게 좋아 보인다.
Git
에는 rebase
라는 기능이 있는데, 말 그대로 base를 옮기는 기능이다.
위의 커밋 두 개를 합쳐 보자.
git rebase -i HEAD~3
그럼 다음과 같은 vim
(혹은 nano
) 창이 뜬다.
pick commit fix typo
pick commit console.log added
# 주석들
다음과 같이, 합치고 싶은 걸 s로 바꾸자.
pick commit fix typo
s commit console.log added
# 주석들
이제 :wq
로 저장하면 (vim
의 경우) s
한 게 pick
한 커밋으로 합쳐 들어간다.
다음으로 다음과 같이 커밋 메세지를 선택하는 창이 뜬다.
# 주석
fix typo
# 주석
console.log added
# 주석들
살리고 싶은 메세지는 놔두고, 날리고 싶은 메세지 앞에 #
을 붙이거나 지워주자.
# 주석
# fix typo
# 주석
console.log added
# 주석들
저장하면 커밋이 하나로 잘 합쳐져 있다.