table of contents
Git 커밋 메시지 수정, --allow-empty 정리
1. 마지막 커밋 메시지 수정하기
1-1. 아직 push 안 한 경우 (로컬 전용)
에디터 열어서 수정하기 방식
1
git commit --amend- 기본 Git 에디터가 열리면 맨 윗줄의 메시지만 원하는 내용으로 수정 → 저장 후 종료하면 됨.
한 줄로 바로 바꾸기
1
git commit --amend -m "새로운 커밋 메시지"
- 기존 커밋의 “내용(파일 변경)”은 그대로 두고, 메시지만 교체.
이 방식은 해당 커밋이 아직 원격에
push되지 않았을 때 안전하게 사용 가능.
1-2. 이미 push한 커밋의 메시지 수정
git commit --amend로 메시지를 바꾸면, 커밋 해시가 바뀌어서 히스토리 재작성이 됨.그 상태에서 원격과 맞추려면 강제 푸시가 필요:
1
git push --force-with-lease- 위험성:
- 다른 사람이 같은 브랜치를 쓰고 있다면, 그 사람들의 히스토리와 충돌 가능.
- 팀/공용 브랜치에서는 보통 권장되지 않음.
- 위험성:
협업 중이거나 이미
push한 커밋이라면, “커밋을 고치는 것”보다는 새 커밋으로 정정/보충 설명을 남기는 게 안전하다.
2. git commit --allow-empty란?
2-1. 개념
1
git commit --allow-empty -m "메시지"
- 워크디렉토리에 변경 사항이 하나도 없어도 커밋을 만들게 해주는 옵션.
즉, 실제 코드 변화 0인 “빈 커밋(empty commit)”을 강제로 만든다.
- 보통은 변경 없이
git commit실행하면 “no changes added to commit” 같은 메시지와 함께 커밋 거부. --allow-empty추가 → 변경이 없어도 커밋 생성.
- 보통은 변경 없이
2-2. 언제 쓰나?
- 이력/메모용 마커 커밋
- 예: “2026-03-04 배포 완료”, “v1.0 릴리스 태그용 마커”처럼, 코드 변경 없이라도 타임라인에 표시를 남기고 싶을 때.
- CI/CD 재실행 트리거
- 코드 안 고치고도 파이프라인 한 번 더 돌리고 싶을 때, 빈 커밋 하나 만들어
push해서 트리거.
- 코드 안 고치고도 파이프라인 한 번 더 돌리고 싶을 때, 빈 커밋 하나 만들어
- 이미
push된 커밋에 대한 “정정 안내”- 푸시된 커밋 메시지를 직접 고치기 부담될 때, 예를 들어:
1
git commit --allow-empty -m "chore: 이전 커밋 메시지 의미 보완 (실제 동작은 변경 없음)"
- 이렇게 하면 히스토리를 망가뜨리지 않고도, “이전 커밋을 이렇게 이해해 달라”는 보충 설명을 남길 수 있음.
3. 요약
- 마지막 커밋 메시지만 바꾸면 되고 아직
push안 했다 →git commit --amend [-m "..."] - 이미
push해서 히스토리 건드리기 싫다 →git commit --allow-empty -m "정정/보충 설명"같은 새 커밋으로 처리.