포스트

[GitHub 100일 챌린지] Day 64 - Git Restore로 파일 복구

[GitHub 100일 챌린지] Day 64 - Git Restore로 파일 복구

100일 챌린지 Day 64 - Git 2.23 버전에 추가된 restore는 파일 복구를 위한 직관적인 명령어입니다.

배울 내용

  1. Git Restore의 개념
  2. Working Directory와 Staging Area 복구
  3. 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 - unstage
  • git restore --source=커밋 file - 특정 커밋에서 복구

다음: Day 65 - Git Clean


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.