Git의 기초 — 수정하고 저장소에 저장하기

2025. 12. 15. 12:35Git/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 > 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