[GitHub 100일 챌린지] Day 64 - Git Restore로 파일 복구
[GitHub 100일 챌린지] Day 64 - Git Restore로 파일 복구
100일 챌린지 Day 64 - Git 2.23 버전에 추가된 restore는 파일 복구를 위한 직관적인 명령어입니다.
배울 내용
- Git Restore의 개념
- Working Directory와 Staging Area 복구
- Restore vs Reset 차이
1. Git Restore란?
목적: 파일을 특정 상태로 복구
1
2
3
4
5
# Working Directory 복구
git restore file.js
# Staging Area 복구
git restore --staged file.js
2. Working Directory 복구
1
2
3
4
5
6
7
# 파일 수정 취소
echo "wrong content" > file.js
git restore file.js
# → HEAD의 file.js로 복구
# 모든 수정 취소
git restore .
3. Staging Area 복구
1
2
3
4
5
6
# 실수로 add
git add sensitive-data.txt
# Unstage
git restore --staged sensitive-data.txt
# → Staging에서 제거, 파일은 유지
4. 특정 커밋에서 복구
1
2
3
4
5
# 특정 커밋의 파일로 복구
git restore --source=abc1234 file.js
# 또는 브랜치
git restore --source=main file.js
5. 실전 시나리오
시나리오 1: 파일 수정 취소
1
2
3
4
5
# 잘못 수정
vim config.js
# 복구
git restore config.js
시나리오 2: Staging 취소
1
2
3
4
git add file1.js file2.js file3.js
# file3.js는 빼야 함
git restore --staged file3.js
시나리오 3: 삭제된 파일 복구
1
2
3
4
rm important.js
# 앗! 실수!
git restore important.js
6. Restore vs Reset
| 명령어 | 대상 | 용도 |
|---|---|---|
| restore | 파일 | 파일 복구 |
| reset | 커밋 | 커밋 되돌리기 |
1
2
3
4
5
# 파일 복구
git restore file.js
# 커밋 되돌리기
git reset --soft HEAD~1
7. 주의사항
1
2
3
4
5
6
7
# ⚠️ 주의: 복구 불가능
git restore file.js
# → 수정 내용 영구 삭제!
# 백업 권장
cp file.js file.js.backup
git restore file.js
정리
완료 체크:
- Restore로 파일을 복구할 수 있다
- Staged 파일을 unstage할 수 있다
- Restore와 Reset의 차이를 안다
핵심 요약:
git restore file- 수정 취소git restore --staged file- unstagegit restore --source=커밋 file- 특정 커밋에서 복구
다음: Day 65 - Git Clean →
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
