2011-07-26 1 views
10

을 전환 할 때 "다음의 비 추적 작업 트리 파일을 체크 아웃 덮어 쓰기 될 것이다"라고하고 나는 개발 분기의 체크 아웃 사본을 내 로컬 자식 저장소 (사용자 poomalai). 다른 체크 아웃 사본 (사용자 raj)에서 파일 (Mydirectory/myfile.php)을 삭제 (git rm --cached)하고 허브 저장소로 푸시했습니다.자식 난 지점은 "<strong>허브</strong>"원격 베어의 repo에서 "<strong></strong>을 개발"이라는 한 가지

이제 허브에서 "poomalai"로 변경 사항을 가져 왔을 때 제대로 작동했으며 git 로그에서 파일 삭제에 대한 커밋 메시지를 받았습니다. 나는 사용자 poomalai의 .gitignore 파일에 파일을 추가했습니다. 이제 로컬 repo (사용자 poomalai)에 파일을 만들었습니다.

이제 파일이 버전 제어에없고 더 이상 파일에 대한 변경 사항이 git에 의해 추적되지 않습니다.

하지만 몇 가지 다른 분기를 전환하려고 할 때, 그것은 말한다는 내가 리눅스 rm 명령을 사용하여 파일을 제거하면

error: The following untracked working tree files would be overwritten by checkout: 
    Mydirectory/myfile.php 
Please move or remove them before you can switch branches. 
Aborting 

다음, 나는 가지를 전환 할 수 있어요. 파일을 다시 작성하면 다시 동일한 오류가 발생합니다. 파일이 디렉토리에 있어야하지만 git이 추적해서는 안됩니다.

git rm ----> says fatal: pathspec 'diamonds_webservice/dbconnect.php' did not match any files 

git gc 
git reset --hard HEAD 
git pull 

아무것도 작동하지 않습니다 :

나는 다음과 같은 명령을 시도했다. 누군가 도와주세요.

답변

7

파일이 '대상 분기'의 저장소에 추가되고 해당 파일이 '대상 분기'에서 확인되었는지 확인한 다음 분기를 전환 할 수 있기 때문에 가능할 수 있습니다.

찰스가 말했듯이, git은 데이터 무결성을 보장하기 때문에 디렉토리를 전환 할 때 아무 것도 손실되지 않습니다.

+1

위의 내용은 정상적으로 작동하므로 허브에서 파일을 삭제하기 전에 생성 된 모든 브랜치에서 파일을 제거해야합니다. 감사합니다 – pooamlairaj

+2

우리는 어떻게 우리가 체크 아웃 할 수없는 지점에서 "git rm"을합니까? – brazorf

1

삭제 된 파일이없는 분기로 전환하면 ... 삭제할 것이므로 git이 경고하는 것이 좋습니다. 따라서 삭제를 수행 한 지점을 체크 아웃하기 전에 제거 (또는 이름 바꾸기)를 올바르게 수행하고 있습니다.

그래서 위의 코드는 덮어 쓰기 전에 데이터를 신경 써야합니다. 버전을 알지 못해 체크 아웃 후에 복구 할 수 없기 때문입니다.

+1

을 (그것은 단지 4-5 파일 때문에 내가 먼저 파일을 이름을 변경)하지만 지루한 작업이다 각각 때마다 파일 이름을 바꿔야한다 등 왜 그냥 자식 파일을 무시하고 추적 및 분기 스위치 중단 지 않습니다? – pooamlairaj

+1

브랜치 스위치는 버전이없는 데이터 (지금 추적되지 않은 파일)를 덮어 쓰기 (또는 삭제)하기 때문에 – CharlesB

+0

http://stackoverflow.com/questions/7630693/git-warning-of-file-overwriting-due-to-supposedly- untracked-files 다음과 같이 쓸 수 있습니다 :'rm git checkout xyz 2> & 1 | sed "s/^ [^ \ t].*// g "'(여기서 은 shift- ~입니다) 이러한 파일은 자동으로 삭제됩니다. –

0

나를 위해 일한 유일한 : 안드로이드 스튜디오 에서

이 - 로그 이벤트로 이동 - 하이퍼 링크 '으로 볼'을 클릭합니다. - 그런 다음 수동으로 마이너스 바를 터치하여 팝업 창에서 파일을 삭제하십시오.

... 난 일부 항목이 첫 번째 시도에서 삭제되지 않은 배를해야했다