brew install lazygit
커밋 메시지 renaming
가끔 github workflow 에 커밋메시지 포맷을 검사하는 루틴이 있는 경우가 있다
그런 경우 과거 커밋 메시지들을 포맷에 맞게 재설정해야한다
git rebase -i HEAD~20 입력 ㄱㄱ
여기서 바꾸고 싶은 커밋 옆에 pick 지우고 reword 라 쓰고 넘어가면
한 커밋씩 메시지를 바꿀 수 있다
Vim이랑 사용법 좀 다르니 유의
- ctrl+X 가 exit, format은 그냥 선택 안 하고 엔터만 입력해도 됨
풀리퀘 안에 중복된 커밋 합치기
커밋 1에서 추가한 함수의 type hint 가 파이썬 3.8 문법에서는 지원을 안 해 workflow 일부에서 실패를 하는 현상이 발생했고,
이것이 커밋 3에서 수정되었다. 동일 함수에 대한 수정 사항이 두 커밋에 나눠져있으므로 리뷰어를 위해 두 개를 합쳐보자
git command CLI로 하기 복잡하므로 pygobject를 사용해봅시다
https://github.com/jesseduffield/lazygit?tab=readme-ov-file
brew install lazygit
프로젝트 루트 디렉토리에서 lazygit 명령어를 입력해서 실행
합치고 싶은 커밋 클릭한 뒤 f(fixup) 혹은 s(squash) 누르면 바로 아래 커밋과 합쳐지네요
- Squash (s): Squash는 두 개의 커밋을 하나로 합치면서, 두 커밋의 커밋 메시지를 합쳐줍니다. 이 과정에서 새로운 커밋 메시지를 수정하거나 둘 중 하나를 선택하는 옵션을 제공합니다. 즉, 이전 커밋의 메시지와 함께 새 커밋의 메시지를 결합할 수 있습니다.
- Fixup (f): Fixup은 두 커밋을 하나로 합치되, 수정된 커밋의 메시지를 무시하고 이전 커밋의 메시지만 남깁니다. 즉, 추가된 내용만 합쳐지며, 커밋 메시지는 그대로 유지됩니다.
근데 위 방법보다는
i 를 눌러 interactive rebase 로 넘어간다음 squash (s), fixup (f), drop (d), edit (e), move up (ctrl+i) or move down (ctrl+j) any of TODO commits 등을 직접 진행하는게 더 정교한 작업이 가능할 듯
- commit1, commit2, commit3, commit4가 있다고 가정할 때, commit2와 commit4만 합치고 싶다면:
- 리베이스 목록에서 commit2에 edit 또는 squash/fixup 설정.
- commit3을 pick으로 그대로 둡니다.
- commit4에 fixup을 선택하여 commit2에 합칩니다.
이 방법을 통해 commit2와 commit4를 합치면서 commit3을 유지할 수 있습니다.
합친 뒤 force push 하면 히스토리가 덮어써집니다
git push origin [branch name] --force
'etc' 카테고리의 다른 글
ffmpeg 이용해 여러 동영상을 동시에 재생 (격자) (0) | 2024.08.29 |
---|---|
pre-commit 이란? (0) | 2024.08.29 |
github에는 못올리는 큰 파일 dvc로 관리하기 (0) | 2024.08.29 |
rsync로 원격 서버에 파일 빨리 올리기 (0) | 2024.08.29 |
과거 실수들을 묻어버리자 - bfg repo cleaner (0) | 2024.08.29 |