❗️❗️❗️ [ git rebase는 커밋 로그를 깔끔하게 정리할 때 유용하다. ] ❗️❗️❗️
💡 git rebase -i HEAD~x
x에 원하는 커밋 개수를 적어주면 된다.
우선, git의 rebase를 사용하기 위해 커밋 로그들을 만들었다.
[1] r(reword)
이미 commit한 commit 메시지 수정할 수 있다.
rebase 명령어와 함께 HEAD~ 뒤에 보고 싶은 커밋의 개수를 적어준다.
1번의 결과로 편집기가 열려 내가 입력한 커밋 로그 개수만큼 보여준다. 이제 pick이라고 써져있는 자리에 r 옵션을 적어주고 편집기를 닫으면 된다.
다시 새 편집기가 열리는데 바꾸고 싶은 커밋 메시지를 적어주고 편집기를 닫으면 된다.
이제 git log를 보면 커밋 메시지가 수정되어 있는 것을 볼 수 있다.
[2] d(drop)
특정 commit을 삭제할 수 있다.
💡 git log를 보면 커밋이 삭제되어 없어져 있는 것을 볼 수 있다.
[ 추가 ] 실수로 삭제한 커밋을 되돌리는 법
git reset --hard 복구하길 원하는 커밋의 이전 해쉬값
💡 git log를 보면 삭제된 커밋이 다시 있는 것을 볼 수 있다.
[3] s(squash)
커밋 로그를 깔끔하게 만들 때 사용한다.
[ 주의 ] 항상 과거쪽으로 짓눌러(squash)줘야 한다는 점이다.
즉, 과거 쪽으로 합친다고 생각하면 된다.
예시) "로그인1 완성", "로그인2 완성", "로그인3 완성"이라는 3개의 커밋 로그를 "로그인 완성"이라는 하나의 커밋 로그로 만들고 싶다.
📝 로그인1 완성 → pick
📝 로그인2 완성 → squash
📝 로그인3 완성 → squash
rebase 명령어와 함께 HEAD~ 뒤에 보고 싶은 커밋의 개수를 적어준다.
1번의 결과로 편집기가 열리면 과거 방향으로 pick 자리에 s 옵션을 적어주고 편집기를 닫아준다.
다시 새 편집기가 열리는데 마지막 커밋 영역에 원하는 커밋 메시지를 적어주면 된다.
git log를 보면 커밋 로그가 깔끔하게 하나로 남아있는 것을 볼 수 있다.