2013-07-23 4 views
0

, 내 마스터 지점의 특정 버전을 체크 아웃 :git의 이전 버전을 체크 아웃 한 다음 최신 버전으로 반환했지만 이전 버전의 삭제 된 파일은 여전히 ​​로컬 디렉토리에 있습니까? 자식을 사용하는 동안

나는 일부 이전 파일을 살펴보고 이런 짓을

checkout <branch hash> .

, 나는 변경하지. 그런 다음 현재 상태를 최신 버전으로 재설정하려고했습니다. 불행히도 처음에는 제대로 작동하는지 확신 할 수 없었기 때문에 몇 가지 명령을 시도했습니다. 명령 포함 : 그것 때문에 이전 버전의 이전 파일을 표시 존재 특정 행동 처음 일 경우

checkout master .

checkout HEAD .

reset HEAD --hard

내가 확실하지 않았다.

그렇다면 수정 된 파일과 새 파일이 실제로 현재 버전으로 복원되었음을 알았지 만 이전 버전과 현재 버전간에 삭제 한 파일은 여전히 ​​내 로컬 디렉토리에 있습니다. 이것이 발생해야합니까? 어느 누구도 일반적으로 오래된 개정판으로 돌아간 후에 삭제 된 파일이 존재하기를 원하지 않는다고 생각하지만 아직까지는 그렇습니다.

내가이 문제가 발생했는지 또는 일시적으로 체크 아웃 된 수정본의 이러한 원치 않는 파일을 제거하는 데 사용할 수있는 다른 명령이 있는지 궁금합니다.

+0

귀하의 문제가 있었다'.' 체크 아웃의 끝에 경로 : 당신은하지 않고, 그 커밋에서, .'', 즉 재귀 적으로 전체 현재 디렉토리를 해당 경로를 체크 아웃을했다 스위칭 커밋. 그래서 worktree와 index에 전체'master' 체크 아웃을 추가했습니다. – jthill

답변

1

은 참조 : GIT: When checking out an alternative branch, I want to clear ignored files

난 당신이 git clean 명령을 찾고 생각합니다. git clean -nd <path>을 빨리 수행하면 실제 명령 실행시 삭제 될 모든 추적되지 않은 파일/삭제 된 파일이 나열됩니다.

삭제하려는 모든 파일이 포함되어 있다고 확신하는 경우 git clean -df <path>을 수행하십시오.

참조 : http://gitready.com/beginner/2009/01/16/cleaning-up-untracked-files.html

+1

끝내 주셔서 감사합니다. 나는 내가 관찰 한 행동이 지금도 왜 디폴트인지 이해한다. 주의 할 점은 실제 삭제 명령에는 -f 플래그가 필요합니다. 그렇지 않으면 "fatal : clean.requireForce의 기본값은 true이고 -n도 -f도 지정되지 않고 정리를 거부합니다". 그래서'git clean -df '이 트릭을 정확하게 수행했습니다! – user1167662

+1

@ user1167662 감사합니다. 이 질문에 답한 사람이 누구나 볼 수 있도록 답변을 업데이트했습니다. –