2014-11-21 2 views
0

SVN을 사용하면 로컬 파일을 삭제하고 (휴지통에 넣을 수 있음) 삭제 후에 svn update를 실행하여 복원 할 수 있습니다. SVN 클라이언트는 단순히 파일의 새로운 복사본을 가져올 것입니다.SVN UPDATE에 해당하는 git은 무엇입니까?

나는 GIT로 그것을 알아낼 수 없었다.

Windows에서 Tortoise Git을 사용하고 있는데 'pull'또는 'fetch'를 실행해도 파일이 복원되지 않습니다. 다시 전체 저장소 (복제본)를 체크 아웃하고 싶지는 않습니다 ...

+0

파일 이름이'restore/me' 인 경우 'git checkout-restore/me'를 사용하십시오. 파일의 이름을 모른다면'git status'를 사용하여 파일의 이름을 찾으십시오. – torek

+0

@ 토렉 : 고마워. 그것은 cmd 프롬프트에서 작동하지만 Tortoise Git에서는 작동하지 않습니다. 그리고 파일 이름을 입력해야한다는 것은 짜증나게합니다. SVN에서 파일을 삭제했기 때문에 파일을 삭제했기 때문에 SVN UPDATE가 모든 파일을 복원합니다 ... Tortoise GIT에서 수행해야하는 동일한 작업은 무엇입니까? – user1884325

+0

나는 Tortoise Git을 사용하지 않기 때문에 잘 모른다. 힘내는'reset --hard'를 가지고 있지만 꽤 다르다. 그것은 "색인과 작업 디렉토리가 주어진 커밋과 일치하도록 만들고 그 지점으로 지점을 이동하라"는 의미이다. – torek

답변

0

명령 조합을 사용하여 모든 삭제 된 파일을 복원 할 수 있습니다. 분명히 이것은 당신이 삭제했지만 아직 삭제하지 않은 파일들에 대해서만 작동합니다. 문제

명령 체인은 다음과 같을 수 있습니다 :

git checkout -- $(git diff --name-only --diff-filter=D) 

이미 의견 git checkout 설명 torek으로 흥미로운 부분은 git diff 명령에서 발생하는 파일을 복원 명령입니다.
--name-only 옵션을 사용하면 diff은 변경된 파일의 파일 이름 만 인쇄하지만 은 을 제외한 모든 문자가 개의 파일이 무시된다는 점에 유의해야합니다.

쉽게 사용할 수 있도록 CMD에서 명령을 사용할 수있는 별칭을 만들 수 있습니다. 별칭을 만들기 같이 수 :

git config --global alias.restore '!git checkout -- $(git diff --name-only --diff-filter=D)' 

당신은 CMD에 큰 따옴표 (")를 사용해야합니다.

그러면 git restore과 함께 쉽게 명령을 사용할 수 있습니다.

자세한 내용은 git diff, checkoutconfig 설명서를 참조하십시오.

0

"수정 사항 확인"을 수행 한 다음 삭제 된 파일 목록을 볼 수 있습니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 되돌리기를 선택하십시오.

관련 문제