Computer Science/Git
자동으로 commit 위치 찾아서 Git으로 지운 파일 복원하기
JAYNUX
2017. 1. 31. 11:10
자동으로 commit 위치 찾아서 Git으로 지운 파일 복원하기
버전관리 시스템을 쓰는 이유중 하나가 실수로 지워진 파일을 복원하거나
예전에 필요 없다고 지운 파일을 손쉽게 복원하기 위해서이다.
문제는 commit
이 많이 누적 됬다면 해당 파일이 존재하는 위치를 찾는것은 꽤나 귀찮은 일이 된다.
이러한 부분 쉽게 검색으로 해결하는 방법을 다룬다.
특정 경로에 관련된 commit을 찾는 명령어
맨 처음부터 HEAD까지 전부 검색한다는 의미이다.git rev-list -n 1 HEAD -- <file_path>
git rev-list -n 1 HEAD -- ./0.Basic
f75de024ee267c765d8abfea460ac5f5c506b015
해당 commit 바로 이전으로 checkout하는 방법 caret^
을 넣으면 된다.git checkout <deleting_commit>^ -- <file_path>
git checkout f75de0^ -- ./0.Basic
# 정상적으로 복원됨
jemin@jemin-desktop:~/ESLAB_ML/jemin/TensorFlowLecture$ git status
현재 브랜치 master
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.
커밋할 변경 사항:
(스테이지 해제하려면 "git reset HEAD <파일>..."을 사용하십시오)
새 파일: 0.Basic/Basic_usageOfConstant.py
새 파일: 0.Basic/Basic_usageOfPlaceholder.py
새 파일: 0.Basic/Basic_usageOfVariables.py
새 파일: 0.Basic/TensorFlow Basic of concept.ipynb
새 파일: 0.Basic/__init__.py
새 파일: 0.Basic/basic.py
새 파일: 0.Basic/hellowTensorFlow.py
특정 파일 1개만 하고 싶을 경우git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"