Git-일부 파일을 로컬에서 삭제했습니다. 원격 저장소에서 파일을 가져 오는 방법


109

PC에서 일부 파일을 삭제했는데 다시 다운로드하려면 어떻게하나요?

Pull은 "이미 최신 상태입니다"라고 말합니다.


1
Git을 사용할 때 모든 저장소 기록이 로컬에 존재하기 때문에 "다시 다운로드"할 필요가 없습니다.
cdhowie 2010

현지에서 구하는 방법을 알고 있습니까?
찰리 파커 (Charlie Parker)

답변:


162

git은 분산 된 VCS이므로 로컬 저장소에는 모든 정보가 포함됩니다. 다운로드가 필요하지 않습니다. 당신은 당신의 손끝에서 repo에서 원하는 콘텐츠를 추출하기 만하면됩니다.

삭제를 커밋하지 않은 경우 현재 커밋에서 파일을 확인하십시오.

git checkout HEAD <path>

삭제를 커밋 한 경우 해당 파일이있는 커밋에서 파일을 체크 아웃해야합니다. 아마도 이전 커밋 일 것입니다.

git checkout HEAD^ <path>

그러나 n이전에 커밋 된 경우을 사용 HEAD~n하거나 단순히 gitk실행하고 적절한 커밋의 SHA1을 찾아 붙여 넣습니다.


2
사이드 코멘트처럼, 이것은 전체 디렉토리에서도 작동합니다. 특별하지도 않고 단일 파일에만 국한되지도 않습니다 (적어도 시도했을 때 작동했습니다). Thnx btw.
Charlie Parker

5
NB는 현재 디렉토리에 대해 점을 찍 <path>더라도 필수 .입니다. 그러나 "분기"( HEAD위 예에서)는 선택 사항입니다. 너무 많은 Git 명령과 마찬가지로 출력도 도움말도 도움이되지 않습니다.
MarkHu

39

git checkout filename

git reset --hard 트릭도 할 수 있습니다


9
git reset --hardHEAD / HEAD ^ / HEAD ~ n 배치 한 위치로 전체 트리를 되돌릴 수 있으므로 메서드를 사용할 때 경고 tho 는 HEAD / HEAD ^ / HEAD ~ n 배치하고 편견없이 수행하고 잠재적으로 많은 커밋을 잃을 수 있습니다.
g19fanatic

자식 체크 아웃 파일 이름 : 나에게 대답했다
Ruub

git checkout filename은 빈 파일 만 생성합니다
mrek

원하는 폴더에 넣고 git checkount .매력처럼 작동 했어요!
hzitoun

21

로컬에서 여러 파일을 삭제했지만 커밋하지 않은 경우 강제로 체크 아웃 할 수 있습니다.

$ git checkout -f HEAD

"이미 최신 상태"출력에서 볼 수 있듯이이 질문을하는 사람은 최근에 아무 것도 저 지르지 않았습니다. git checkout -f HEAD가 위험하다고 지정해야할까요? 커밋되지 않은 로컬 변경 사항을 취소 할 수 있기 때문에 (이전 파일을 긍정적 인 결과로 복원하고 편집 된 파일의 변경 사항을 부정적인 것으로 잃음).
Lionel Trebuchon 2017-10-23

15

로컬에서 여러 파일을 삭제하고 변경 사항을 커밋하지 않은 경우 로컬 저장소 경로로 이동하여 git 셸을 열고 입력합니다.

$ git checkout HEAD .

마지막 커밋 이전에 삭제 된 모든 파일이 복구됩니다.

"."추가 현재 저장소에서 삭제 된 모든 파일을 해당 경로로 복구합니다.

자세한 내용은 설명서를 확인하십시오 .


2

파일을 삭제하기 전에 이전 버전을 체크 아웃해야합니다. 시도 git checkout HEAD^의 마지막 버전을 체크 아웃 할 수 있습니다.


0

또한 git repo가 ​​IDE와 올바르게 연결되도록 다음 단계를 추가합니다.

 $ git reset <commit #>

 $ git checkout <file/path>

도움이 되었기를 바랍니다 !!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.