2009-11-18 3 views
1

마스터 분기 (간체) 이러한 파일과 폴더가 있습니다git checkout 원격 지점에 불필요한 파일이 표시됩니까?

C:\Local\TickZoom\Project>ls 
file.txt   name.txt  public 

공공 분기 공급 업체 저장소를 추적하고 하위 트리 위의 마스터 지점에서 공용 폴더로 병합되었습니다.

C:\Local\TickZoom\Project>ls 
platform providers www 

공중에서 전환이 정확하게 동작하는 마스터 : 공중 만 간체 세 폴더를 갖는다.

그러나 마스터에서 공용으로 전환 할 때 이상한 일이 발생합니다. 그것은 모든 파일과 모두 결합의 폴더가 있습니다 그러나, 자식의 상태를 확인하는 것은 아무것도 변경되었습니다 말한다

C:\Local\TickZoom\Project>git checkout public 

C:\Local\TickZoom\Project>ls 
file.txt name.txt public 
platform providers www 

합니다.

'git reset --hard'가 public을 수정 한 것을 발견했습니다.

CLUE : 새로운 커밋을 수행 한 후에 만 ​​발생합니다 ( ). 자식은 자동 병합을 수행합니까?

'git reset --hard'이후에, 반복적으로 반복하여도 마스터에 대한 점검과 의 공개 작업은 정상적으로 작동합니다.

첫 번째로 수정 된 줄 알았지 만 다음 번에 변경 한 내용이 다시 발생했습니다 ( ). 한번 더 해보겠습니다. 지금 확인해 보겠습니다.

자, 재현 할 수 없습니다. 그러나 그것은 두 번 일어났습니다.

다른 하나의 CLUE는 내가 처음에 자식 재설정을 한 것입니다. -hard 프로세스에 의해 잠긴 파일에 대해 불만을 제기했습니다.

문제가 발생한 프로그램이 닫히면 git reset --hard 이 성공한 다음 두 지점간에 체크 아웃이 이루어집니다.

그래서 파일이 잠겨져있어 체크 아웃이 혼란스럽고 "자동으로"실패합니까? 그것은 더 좋을 것입니다. 그것은 과 동일한 방법으로 실패합니다. 단지 을보고하고 뒤죽박죽 된 작업 공간을보고하는 것보다 어렵습니다.

이것을 피하기 위해 git checkout에 설정하는 다른 모든 지혜 또는 옵션은 인정됩니다.

웨인

+0

좋아, 이제 문제가 발견되었습니다. 어떻게 고치는 지? 하위 폴더에 파일이 무시되는 문제가 있습니다. git은 체크 아웃을 제대로 수행하지만 무시 된 모든 파일을 남겨두고 여러 디렉토리가 다운되면 모든 지시문을 가져옵니다. 나는 git clean -f를 시도했지만 여전히 파일을 남겨두고있다. 분기 간 전환시 추적되지 않은 파일을 정리하는 방법은 무엇입니까? – Wayne

답변

3

사용이이 만 .gitignore에 의해 무시 파일을 포함하는 모든 빈 디렉토리를 청소 -X

을 -d.

이제 완전히 다른 리포지토리의 분기를 체크 아웃하기 전에 스크립트에서이 작업을 수행합니다.

동일한 소프트웨어간에 분기를 전환 할 때 이러한 문제가 발생하지 않습니다.

웨인

+1

질문을 명확히하기 위해 남긴 의견에서 "분기 간 전환시 추적되지 않은 * 파일을 정리하는 방법"이라고 물었습니다. 대문자 X 옵션은 "추적되지 않은"파일을 지우지 않고 무시한 파일 만 지 웁니다. 소문자 x 옵션은 "추적되지 않은"파일 (무시 된 파일 포함)을 정리합니다. 그래서 내 대답은 소문자 x를 제안했습니다. :) –

6

사용 모든의 비 추적 파일을 정리할 수 있습니다 :

git clean -dfx 

확인이 정말 당신이 명령을 실행하기 전에 보관하려는 비 추적 파일이 없습니다!

자식 깨끗한 -f를 해결하기 위해

+0

참고, 대문자 X는 무시 된 파일 만 정리하고 추적되지 않은 파일은 남겨 둡니다. 훨씬 안전합니다. 소문자 x는 무시 무시한 파일과 제거되지 않은 파일을 모두 제거합니다. 그래서 당신의 느낌표는 가치가있었습니다! – Wayne

+0

이 기능은 작동하지만'bower_components','node_modules' 또는'platforms'과 같은 환경 변수가 있으면 제거됩니다. 처음부터 복제했을 때 일어날 일을 정확히 알 수 있습니다. – Deminetix