-
[git] git squash - 커밋 기록 깔끔하게 관리하기개발 관련/GitHub 2024. 12. 6. 22:28반응형
안녕하세요 아렉스입니다.
git squash라고 불리는 것은 보통 대화형 rebase 를 진행할 때 사용할 수 있는 rebase의 옵션입니다.
# HEAD 기준으로 최근 커밋 3개를 rebase 하겠다는 뜻 $ git rebase -i HEAD~3
작업 진행시에 커밋은 자주, PR 전에는 커밋을 정리해서 올린다면, 작업자에게는 효율적인 코드관리와 깔끔한 히스토리 유지를 리뷰어에게는 리뷰의 용이성과 집중도를 높여줍니다.
squash를 사용하면 어떤게 좋아지는가에 대해서는 아래 squash 전후 비교 사진을 보고 판단하시면 되겠습니다.
전 히스토리 관리하는데 매우 편리하고 매력적이었습니다.
How to
$ git rebase -i e3c18b4^
e3c18b4^는 e3c18b4 바로 이전 커밋을 지정하는 것으로, 이 범위 내의 커밋들을 재배치합니다.
명령어를 입력시 아래와 같은 화면이 나옵니다
터미널 편집으로 squash 해줄 부분을 변경해줍니다.
:wq 통해서 에디터에서 저장 후 종료를 해주면 묶인 커밋 메세지를 수정할 수 있고, 저는 아래 사진과 같이 편집했습니다.
편집이 끝나면 :wq 명령어로 탈출
로컬 브랜치에서 합친 후, 이미 원격에 푸시된 브랜치라면 --force 플래그를 사용해 푸시해야 합니다:
$ git push origin <branch-name> --force
https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
'개발 관련 > GitHub' 카테고리의 다른 글
[Github] 이슈 템플릿(issue template) 사용하기 (0) 2024.09.12 GitBook과 Github저장소 연동하기 (2) 2024.09.03 [Git] remote 원격 브랜치 로컬로 가져오기 (0) 2024.03.05 프로젝트/저장소 마다 다른 계정을 이용하고 싶을 때 (0) 2023.01.19 [Git] .DS_Store 파일 개념 및 삭제 방법 (0) 2022.11.09