Git의 기초 — 수정하고 저장소에 저장하기
2025. 12. 15. 12:35ㆍGit/Git 기초
핵심 주제
- 파일을 수정하고 → 스테이징(Staging) → 커밋(Commit) 하는 과정 이해
- Git이 변경을 어떻게 추적하고, 어떤 파일이 저장되는지 파악
출처
👉 https://git-scm.com/book/ko/v2/Git의-기초-수정하고-저장소에-저장하기
🧠 1. Git의 파일 상태 개념

Git은 파일을 크게 Tracked(관리 대상) 과 Untracked(비관리 대상) 으로 나눈다.
Tracked 파일은 다시 세 가지 상태 중 하나를 가진다.
파일 상태 흐름
Untracked → (git add) → Staged → (git commit) → Unmodified
→ (파일 수정) → Modified → (git add) → Staged
🧩 2. 파일 상태 확인 (git status)
현재 워킹 디렉토리의 파일 상태를 확인한다.
git status
예시:
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
- Untracked : Git이 아직 관리하지 않는 파일
- Changes to be committed : 스테이징된 파일
- Changes not staged for commit " 수정되었지만 아직 add 되지 않은 파일
짧게 확인하려면:
git status -s
결과 예시:
M README
A main.c
?? temp.txt
- ?? : Untracked
- A : Added (스테이징됨)
- M : Modified (수정됨)
🧩 3. 파일 추가 (git add)
새 파일을 추적하거나, 수정된 파일을 스테이징할 때 사용한다.
git add <파일명>
git add .
💡 git add는
“새 파일 추가” + “수정된 파일을 커밋 대상에 포함”
두 가지 의미를 모두 가진다.
🧩 4. 파일 수정 및 재스테이징
파일 수정 후 상태:
Changes not staged for commit:
modified: CONTRIBUTING.md
즉, Tracked → Modified 상태가 된다.
다시 커밋에 포함하려면:
git add CONTRIBUTING.md
⚠️ git add 후 파일을 다시 수정했다면
반드시 다시 git add 해야 최신 내용이 반영된다.
🧩 5. .gitignore — 무시할 파일 설정
Git이 관리하지 않아야 할 파일을 지정한다.
.gitignore 예시:
# 오브젝트 / 아카이브 파일
*.o
*.a
# 임시 파일
*~
# 빌드 폴더
build/
# doc 폴더의 모든 pdf
doc/**/*.pdf
공식 템플릿 모음
👉 https://github.com/github/gitignore
🧩 6. 변경 내용 비교 (git diff)
스테이징되지 않은 변경 사항 확인:
git diff
스테이징된 변경 사항 확인:
git diff --staged
--staged 와 --cached 는 동일한 옵션
외부 도구 사용:
git difftool
🧩 7. 변경사항 커밋 (git commit)
스테이징된 파일만 커밋된다.
git commit -m "Add README and update CONTRIBUTING.md"
- -m : 커밋 메시지 인라인 작성
- 메시지는 간결 + 명확 하게 작성
- 예: Fix login bug, Add main controller
🧩 8. Staging Area 생략하기
Tracked 파일만 자동으로 스테이징 후 커밋:
git commit -a -m "Update CONTRIBUTING.md"
⚠️ 새 파일(Untracked)은 포함되지 않는다.
🧩 9. 파일 삭제 (git rm)
파일 삭제 + Git 추적 반영:
git rm <파일명>
git commit -m "Remove unnecessary file"
Git 추적만 해제하고 파일은 유지:
git rm --cached <파일명>
🧩 10. 파일 이름 변경 (git mv)
git mv old_name new_name
git commit -m "Rename file"
아래 명령을 한 번에 처리한 것과 동일:
mv old_name new_name
git rm old_name
git add new_name
✅ 정리 요약
📘 참고 자료
- Git 공식 문서
https://git-scm.com/book/ko/v2/Git의-기초-수정하고-저장소에-저장하기 - GitHub .gitignore 예시
https://github.com/github/gitignore
'Git > Git 기초' 카테고리의 다른 글
| GIT의 기초 실습 (0) | 2025.12.15 |
|---|---|
| GIT의 master와 main 차이 (0) | 2025.12.15 |
| Git의 기초 2.5 — 리모트 저장소 (0) | 2025.12.15 |
| GIT 저장소 만들기 (0) | 2025.12.15 |
| Remote Repository(GitHub)를 Local Host PC에 add 하는 방법 (0) | 2025.05.08 |