2011-10-11 4 views
1

내가 디렉토리에있는 모든 파일을 어떻게 복구 할 수 있는지 궁금하다.git checkout delete directory

당신은 내가

git checkout /path/to/dir/ 

을 수행 할 때하지만 난이

같은 것을 얻을

git add /path/to/dir/ 

처럼, 한 번 그 안에있는 모든 파일을 추가하거나 제거 할 디렉토리의 경로를 사용할 수 있습니다

error: pathspec '/path/to/dir/' did not match any file(s) known to git. 

모든 파일을 수동으로 추가해야하므로 더 쉬운 방법이 있습니까?

+0

"디렉토리의 모든 파일 복구"가 무엇을 의미하는지 명확히해야한다고 생각합니다. "해당 디렉토리에있는 파일에 대한 커밋되지 않은 변경 사항을 모두 버립니다"라는 뜻입니까? 또한'git checkout'과 함께 절대 경로를 사용해서는 안되며'/ path/to/dir' 대신'path/to/dir'을 사용해야하며 현재 디렉토리와 관련된 경로를 사용합니다. –

+0

절대 경로 일 수 있습니까? 'git checkout'은 작업 트리에 상대적인 경로로 작동한다고 가정합니다. (예 : 작업 트리의'git checkout path/to/dir') – Boldewyn

+0

@Boldewyn : 절대 경로를 사용하면 'fatal :'/ path/to/dir '이 저장소 외부에있는 경우와 다른 오류가 발생합니다 경로가 저장소의 디렉토리로 연결되는 경우 나는 이것이 잘못된 상대 경로 문제라고 의심한다 .... –

답변

1

을 나는 당신이 지점을

git checkout master 또는 git checkout <treeish> -- /path/to/dir

더 많은 정보를 확인할 필요가 있다고 생각 : http://gitready.com/intermediate/2009/03/18/restoring-a-directory-from-history.html

+0

분명히 필수는 아니다 : http://schacon.github.com/git/git-checkout.html – lc2817

+2

해결책 : git checkout master - path/to/dir – dazz

+1

방금 ​​git checkout을 시도했습니다. - dir, 작동 중입니다. 그는 두 배의''' – lc2817

0

분명히 할 수 있습니다 : watch here for an example. 명령은

git checkout <treeish> -- /path/to/dir 

이어야합니다. 귀하의 경우에는 분기를 지정하지 않고 디렉토리의 상태를 최종 커밋으로 되돌려 야합니다.

아마도 git checkout 명령 다음에 --을 잊어 버린 것일 수 있습니다.
(. 심지어 나뭇 가지를 처리하지 않을 경우는 --없이 사용할 수 있다는 것을 알지 못했다)

관련 문제