본문으로 건너뛰기
Git · GitHub 기초집LESSON 04

add, commit과 좋은 커밋 메시지

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

4강. add, commit과 좋은 커밋 메시지

1. 이번 강의에서 해결할 문제​

서로 관계없는 변경을 한 커밋에 넣으면 리뷰와 되돌리기가 어려워집니다. 커밋할 파일과 줄을 검토하고 하나의 목적을 담은 기록을 만듭니다.

2. 학습 목표​

3. 핵심 개념​

git add는 파일을 영구 저장하지 않고 다음 커밋에 포함할 스냅샷을 준비합니다. git commit은 스테이징된 내용만 새 이력으로 기록합니다. 메시지는 “무엇을 했나”보다 “이 커밋이 적용되면 무엇이 달라지나”를 짧게 표현합니다.

작업 폴더의 파일을 다시 수정해도 이미 스테이징한 스냅샷은 자동으로 바뀌지 않습니다. 그래서 git diff는 아직 스테이징하지 않은 차이, git diff --staged는 다음 커밋에 들어갈 차이를 보여 줍니다. commit 전에 status와 staged diff를 함께 읽는 것이 핵심입니다.

작업 폴더 -- git add --> 스테이징 영역 -- git commit --> 저장소 이력
^ |
+-- git restore --staged -+ (작업 내용은 유지)

4. 단계별 명령어와 예시​

명령 목적: README 변경 하나만 선택해 검토하고 첫 문서 커밋으로 기록합니다.

실행 전 상태: 저장소 루트가 C:\dev\git-learning-site이고 git status --short에 README만 의도한 변경으로 보이는지 확인합니다. .env, 키 파일, 개인 정보가 보이면 스테이징하지 않습니다.

파일 경로: C:\dev\git-learning-site\README.md

PowerShell
Set-Location C:\dev\git-learning-site
Add-Content README.md "`nGit과 GitHub를 학습하는 프로젝트입니다."
git status --short
git add README.md
git diff --staged
git commit -m "docs: add project introduction"
git status

예상 결과: add 전에는 README가 작업 폴더 변경으로 보이고, add 후에는 staged 상태가 됩니다. git diff --staged에는 추가한 소개 문장만 나타나야 합니다. commit 뒤 git status는 작업 트리가 깨끗하다고 표시합니다.

5. 명령어가 동작하는 이유​

git add README.md는 해당 경로만 index에 올립니다. git diff --staged는 다음 커밋에 실제로 들어갈 차이를 보여 줍니다. 커밋은 작성자, 시간, 부모 커밋과 스냅샷을 연결한 새 객체를 만듭니다.

Add-Content는 작업 폴더 파일을 수정하고, git add가 그 시점의 내용을 index에 복사합니다. commit 메시지의 docs:는 변경 종류, 뒤 문구는 적용 결과를 나타냅니다. 팀 규칙이 없다면 완벽한 접두사보다 한 목적을 정확히 설명하는 것이 우선입니다.

6. 자주 하는 실수와 안전한 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

10. 다음 강의 연결​

선택한 변경을 작은 커밋으로 기록했습니다. 다음 강의에서는 커밋 이력과 작업 차이를 읽어 변경 원인을 추적합니다.

MINI QUIZ

add, commit과 좋은 커밋 메시지 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1다음 중 “add, commit과 좋은 커밋 메시지”의 핵심 요약을 실제 상황에 맞게 적용한 것은 무엇인가요?
  2. 문제 2“add, commit과 좋은 커밋 메시지” 실습 중 ‘확인 없이 git add . 실행’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

4강. add, commit과 좋은 커밋 메시지 미완료 상태