Git
[Git] Git에서 특정 파일만 무시하거나 되돌리는 전략 정리
clolee
2025. 5. 21. 20:07
✅ Git에서 특정 파일만 무시하거나 되돌리는 실무 전략 정리
🔎 목적
- Git에 이미 올라간 파일을 로컬 변경 없이 그대로 다시 덮어쓰기
- 특정 파일은 로컬에서 계속 수정하되 Git에선 무시하도록 처리
- Git이 추적하지 않아도 되는 새로운 파일/디렉토리를 무시하도록 설정
✅ 1. 변경된 파일을 Git에 올라간 상태로 덮어쓰기
Git이 추적 중인 파일을 마지막 커밋 상태로 복원 (로컬 수정 삭제)
▶️ 명령어:
git restore <파일경로>
📂 예시:
git restore src/components/Header.js
💡 설명:
git status
에 modified로 뜨는 파일을 제거 (수정 내용 삭제)- 로컬에서 실수로 수정한 파일을 원상복구
- 주의: 되돌린 변경사항은 복구 불가 (백업 먼저!)
✅ 2. 로컬에서만 수정하고 Git에선 무시하게 하기
Git이 추적 중인 파일을 로컬에서만 수정하고,
git status
에도 안 뜨게
▶️ 명령어:
git update-index --assume-unchanged <파일경로>
📂 예시:
git update-index --assume-unchanged config/apiConfig.js
🔁 다시 추적하게 하려면:
git update-index --no-assume-unchanged config/apiConfig.js
💡 설명:
- 팀에서 공유하는 설정 파일을 내 PC에서만 다르게 쓰고 싶을 때
- 예: API 주소, 테스트 계정 등 변경 시
- Git에는 변경사항 올라가지 않음
✅ 3. 새로 만든 파일/폴더 무시하기
Git이 전혀 모르고 있었던 파일들 (Untracked)을 무시하도록 설정
3-1. .gitignore
로 무시 (공유됨)
# .gitignore 예시
data/nodeWeb-example/
*.log
.env
.gitignore
은 커밋되므로 다른 팀원도 무시- 보통 팀 프로젝트에서 공통으로 무시할 파일 등록
3-2. .git/info/exclude
로 무시 (로컬 전용)
echo "data/nodeWeb-example/" >> .git/info/exclude
- 내 로컬에서만 무시
- 팀에는 영향 없음
- 커밋되지 않음
📊 전략별 비교 요약표
상황 | 명령어 | 추적 여부 | 로컬 변경 유지 | 팀에 공유됨? |
---|---|---|---|---|
Git에 올라간 파일 덮어쓰기 | git restore <파일> |
✅ O | ❌ 삭제됨 | ✅ 예 |
Git에 올라간 파일 무시 | --assume-unchanged |
✅ O | ✅ 유지 | ❌ 아니오 |
새 파일/폴더 무시 (공통) | .gitignore |
❌ | ✅ 유지 | ✅ 예 |
새 파일/폴더 무시 (로컬) | .git/info/exclude |
❌ | ✅ 유지 | ❌ 아니오 |
📌 마무리 팁
- 자주 쓰는 설정 파일(API, 비밀번호 등)은
.env.local
,local-config.js
처럼 로컬용 파일을 따로 두고.gitignore
로 무시하는 구조로 관리하는 것이 이상적입니다. - 무심코
git add
하기 전에 항상git status
확인하세요!