
Git 커밋 메시지 기본 구조
가장 많이 사용하는 커밋 메시지 형태는 다음과 같다.
type(scope): message
- type: 커밋의 성격
- scope: 영향 범위 (선택)
- message: 무엇을 했는지 요약
Git 커밋 타입 정리
| 타입 | 의미 | 예시 | 주로 사용되는 파일 |
| feat | 새로운 기능 추가또는 기존 기능을 요구사항에 맞게 확장/변경 | feat(chunking): 청킹 로직 기본 구조 추가 | *.py, *.ts, *.js, service/, api/, controller/, domain/ |
| fix | 버그 수정 | fix(chunking): 토큰 초과 청크 스킵 문제 수정 | 기존 로직 파일, 에러 처리 코드, 조건문이 있는 핵심 모듈 |
| refactor | 리팩토링 (기능 변화 없음) | refactor(chunking): 함수 책임 분리 | utils/, service/, 공통 함수 모듈 |
| chore | 설정, 환경, 잡일성 작업 | chore: dependency 정리 | .env, requirements.txt, poetry.lock, package.json, .gitignore |
| docs | 문서 수정 | docs: README 실행 방법 보완 | README.md, docs/, *.md, 위키 문서 |
| test | 테스트 코드 추가/수정 | test: 청킹 로직 단위 테스트 추가 | tests/, __test__, test_*.py, *.spec.ts |
| style | 코드 포맷, 스타일 수정 (로직 변화 없음) | style: lint 규칙에 맞게 포맷 수정 | 공백/정렬만 바뀐 코드, 포맷터 적용 파일 |
| build | 빌드 시스템 관련 수정모듈 설치/삭제 | build: torch 버전 업데이트 | Dockerfile, Makefile, build.gradle, setup.py |
| ci | CI/CD 설정 수정 | ci: GitHub Actions 테스트 단계 추가 | .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile |
| release | 버전 릴리즈 | release: v1.2.0 | CHANGELOG.md, VERSION, 태그(tag), 배포 스크립트 |
커밋 메시지 수정
1️⃣ 최근 커밋 로그 확인하기
git log --oneline -3
숫자는 최근으로 부터 총 몇개의 로그를 확인할 것인지를 의미한다.

확인해보면 6279c72는": "가 누락되었고, 961a1df는 type과 scope을 빼먹어버렸다..
그래서 이 두 커밋을 수정하려고 한다!
이럴 때 사용하는 것이 interactive rebase이다.
2️⃣ interactive rebase 시작
git rebase -i HEAD~2
최근 커밋 2개를 대상으로 rebase를 실행한다.
3️⃣ pick → reword로 변경
편집창에 아래처럼 표시된다.
pick cca320a feat(chunk): 청킹 로직 추가
pick 5fd1fef feat(chunk): 특정 json 청크 파일의 청크 설정토큰 기반 분해
여기서 pick을 reword로 변경한다.
reword cca320a feat(chunk): 청킹 로직 추가
reword 5fd1fef feat(chunk): 특정 json 청크 파일의 청크 설정토큰 기반 분해
그리고 저장 후 종료한다.
nano 기준
- 저장: Ctrl + O → Enter
- 종료: Ctrl + X
4️⃣ 커밋 메시지 수정
자동으로 커밋 메시지 편집창(COMMIT_EDITMSG)이 열린다. 이제 원하는 대로 수정하면 된다!
5️⃣ 결과 확인
rebase가 끝나면 터미널로 돌아온다.
git log --oneline -2

수정한 메시지가 그대로 보이면 성공이다!
6️⃣ 이미 원격에 push한 커밋인 경우
혹시라도 위에서 변경되지 않은 경우에는 이미 push가 되어있는 상태이다.
커밋 메시지를 수정하면 커밋 해시가 변경된다.
이미 push된 커밋이라면 강제 푸시가 필요하다.
git push --force-with-lease
- --force보다 안전한 옵션
- 내가 최신 상태일 때만 강제 푸시됨
👉 아직 push하지 않았다면 이 단계는 생략해도 된다.
전체 수정과정 흐름을 요약하자면
git rebase -i HEAD~2
nano 편집창이 뜨면서
# pick → reword 변경 후 저장/종료
# 커밋 메시지 수정 (각각 저장/종료)
git log --oneline -2
# 이미 push한 브랜치라면
git push --force-with-lease'Development environment' 카테고리의 다른 글
| [FastAPI] FastAPI 개발하기 1- 환경 셋팅 및 실행명령어 (0) | 2026.02.06 |
|---|---|
| [DBeaver] DBeaver 설치 및 연동하기 (0) | 2026.02.03 |
| [Git] 이미 Git에 올라간 파일 .gitignore 추가하기 (0) | 2025.11.24 |
| [Docker] streamlit+ milvus로 구성한 RAG 서비스 docker로 배포하기 (0) | 2025.10.16 |
| [Docker] Docker 기본 개념 및 명령어 정리 (0) | 2025.10.16 |