git rebase squash로 로그 정리하기

·2022년 10월 19일
0

깃 로그 관리? 깔끔하면 보기야 좋겠지만, 풀리퀘스트로만 잘 정리되면 충분하지 않아?
라고 생각했던 나...

하지만 현업에 들어온 후, 첫 임무를 받으며
커밋 로그들이 드디어 신경쓰이기 시작했다.

처음에 기세좋게 DT-nnn 어쩌구저쩌구 생성 이런식의 메세지로 시작했다.
어렵지 않은 개발이라 핵심 로직은 처음 커밋에 다 남겨져 있었지만 이후 피드백을 받으며 자잘한 실수나 변수명 등을 개선하다보면 온갖 merged 메세지와, 오타 수정과 같은 메세지들이 난잡하여 이슈와 프로젝트의 흐름을 파악하기 어렵게 했다.
또한 무엇보다, 커밋한 나는 괜찮아도 팀원들이 내 로그와 그들의 로그를 구별하기 어려울 것 같았다.
당장 내 방 정리는 안해도 깃 정리는 해야겠다는 생각이 들었다.

그래서 git rebase squash를 드디어 사용해 git log를 정리해보았다.
그런데 git rebase squash 라고 구글에 검색하면 방법들이 매우 친절하게 나와있어서, 정확한 사용법 보단 이담에 내가 까먹지 않게끔 명령어랑 오류를 정리하는 용도의 글✌


git rebase로 squash 하기

git rebase -i head~2

별건 없고 사실 핵심은 위 코드와 같다.
HEAD에서 2개까지의 로그를 가져와서 병합하겠다는 뜻

새로운 크로스 플랫폼 PowerShell 사용 https://aka.ms/pscore6
pick 21a27ac 커밋메세지 -1
pick 1b3cd6e 커밋메세지 -2

# Rebase 7b24aab..1b3cd6e onto 7b24aab (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message

그럼 뭐 이런 메세지가 나올텐데
나는 저기서 21a27ac 로그를 pick으로 두고 1b3cd6e로그를 pick에서 s라고 수정한다. 그럼 pick을 기준으로 s들이 합쳐진다. s는 squash의 축약임

저 위의 메세지대로라면 커밋은 2개에서 1개로 줄어든다.

수정했으면 vi편집기 기준으로 :wq!로 저장
그러면 합쳐질 커밋메세지들과 부모?가 될 커밋의 메세지들을 확인하라고 한다.

여기서 메세지를 한번 더 깔끔하게 정리 할 수있다.
나는 이슈넘버와 어떤 기능인지 작성했다. 그리고 다시 한번 더 :wq!

뭔가 더 섬세하게 할 수 있는 것 같지만, 일단 이정도로도 내가 원하는 정리는 충분히 가능하다.


겪은 오류들

이미 푸시한 커밋을 squash 하려면?

오류 정리를 못해서, 예시가 없는데
아마 로그 충돌이 있으니 pull을 하라며 rebase가 안될 수 있다.
그럼 fetchpull origin 브런치 로 한번 머지해주고 rebase를 시도하자
이후 git push -f origin 브런치를 진행하면 내가 푸시했던 커밋 기록이 사라지고 rebase한 커밋이 origin에 남는다

Vi escape가 안된다

안 된다기보단, 내가 쓰는 IDE인 intellij에서 esc로 텍스트 편집을 벗어나 :wq! 명령어를 실행해야되는데 자꾸 코드 편집으로 돌아가서 명령어가 안먹혔다. 내가 잘못 명령하는 것인가 싶어 한참 해맸는데, 알고보니 intellij에서 esc가 Switch Focus To Editor라는 기능의 단축키로 지정되어있다.

단축키 수정은 아래와 같이 하면 된다.

  1. settings 켜기
  2. Tool -> Terminal
  3. Override IDE shortcuts 옵션의 오른쪽 Configure terminal keybindings 클릭
  4. Keymap 항목 중 Switch Focus To Editor의 단축키가 esc로 되어있다. 바꾸거나 제거하자

그럼 문제해결!

Vi editor 명령어

또한 좀 부끄러웠던게
요즘 에디터 의존도가 높아져서, Vi로 텍스트 편집을 해야하는데 저장이나 취소같은 명령어를 까먹어서 여기서 더 애를 먹었다.
누군가 아래 블로그에 잘 정리해주셨으니, 이담에 다시 또 확인해보자

https://spidyweb.tistory.com/m/125

profile
나 예인쓰, 응애인디

0개의 댓글