git commit

한 줄 요약

Stage에 올린 변경사항을 저장소에 영구적으로 기록

선행 지식

  • Commit - commit의 개념
  • git add - 변경사항을 Stage에 올리는 방법

기본 사용법

git commit -m "커밋 메시지"

Stage에 있는 변경사항을 새로운 Commit으로 저장합니다.

주요 옵션

옵션설명예시
-m "메시지"커밋 메시지 작성git commit -m "feat: 로그인 추가"
-a추적 파일 자동 stagegit commit -am "fix: 버그 수정"
--amend직전 커밋 수정git commit --amend
--no-edit메시지 수정 없이 amendgit commit --amend --no-edit
-vdiff를 에디터에 표시git commit -v

실제 예제

기본 커밋

# 1. 변경사항을 Stage에 추가
git add app.js
 
# 2. 커밋
git commit -m "feat: 사용자 인증 기능 추가"

add와 commit 동시에

# 이미 추적 중인 파일만 해당
git commit -am "fix: 로그인 버그 수정"

주의

-a 옵션은 **새 파일(untracked)**은 포함하지 않습니다.

에디터로 상세 메시지 작성

git commit
# 에디터가 열림

에디터에서 작성:

feat: 사용자 인증 기능 추가

- JWT 토큰 기반 인증 구현
- 로그인/로그아웃 API 추가
- 인증 미들웨어 작성

Closes #123

직전 커밋 수정 (amend)

# 메시지만 수정
git commit --amend -m "새로운 메시지"
 
# 파일 추가 후 커밋에 포함
git add 누락된파일.js
git commit --amend --no-edit

주의

이미 push한 커밋은 amend하지 마세요! → push를 취소하고 싶을 때 참고

좋은 커밋 메시지 작성법

기본 형식

타입: 제목 (50자 이내)

본문 (선택사항)
- 무엇을 왜 변경했는지 설명
- 72자마다 줄바꿈

꼬리말 (선택사항)
Closes #이슈번호

타입 종류

타입설명예시
feat새로운 기능feat: 회원가입 기능 추가
fix버그 수정fix: 로그인 오류 수정
docs문서 수정docs: README 업데이트
style코드 스타일 (기능 변화 X)style: 들여쓰기 수정
refactor리팩토링refactor: 인증 로직 분리
test테스트test: 로그인 테스트 추가
chore기타 작업chore: 패키지 업데이트

좋은 예시

# ✅ 좋은 예시
git commit -m "feat: 이메일 중복 검사 기능 추가"
git commit -m "fix: 비밀번호 특수문자 입력 시 오류 수정"
git commit -m "docs: API 문서에 인증 섹션 추가"
 
# ❌ 나쁜 예시
git commit -m "수정"
git commit -m "버그 고침"
git commit -m "asdfasdf"
git commit -m "작업 중"

커밋 취소/수정하기

상황해결 방법
메시지를 잘못 씀git commit --amend -m "새 메시지"
파일을 빠뜨림git add 파일git commit --amend --no-edit
커밋 자체를 취소 (로컬)git reset
커밋을 되돌리기 (원격)git revert

자주 하는 실수

”nothing to commit” 에러

$ git commit -m "메시지"
nothing to commit, working tree clean

원인: Stage에 아무것도 없음

해결:

git add .
git commit -m "메시지"

“Please enter a commit message” 에디터가 열림

원인: -m 옵션 없이 실행

해결:

  1. 에디터에서 메시지 작성 후 저장/종료
  2. 또는 :q!로 취소 (Vim의 경우)

예방:

git commit -m "메시지"  # -m 옵션 사용

잘못된 브랜치에서 커밋

해결 (아직 push 안 했다면):

# 커밋 취소 (변경사항은 유지)
git reset --soft HEAD~1
 
# 올바른 브랜치로 이동
git switch correct-branch
 
# 다시 커밋
git commit -m "메시지"

잘못된 브랜치에서 작업했을 때 참고

커밋 히스토리 확인

# 기본 로그
git log
 
# 한 줄씩
git log --oneline
 
# 최근 3개만
git log -3
 
# 그래프로
git log --oneline --graph --all

git log 참고

관련 명령어

더 알아보기