2016-06-20 2 views
2

프로젝트가 있고 git를 통해 루트 폴더를 공유했습니다..gitignore, git add 및 파일이 신비하게 사라집니다.

필자와 다른 버전의 Gradle을 사용하고 있으며 프로젝트의 다른 이름을 지정했기 때문에 .idea 폴더 (특정 폴더)의 일부 항목이 .gitignore 파일에 포함되는 것이 적절할 것입니다. 나는 지금까지 이것을 깨닫지 못했다. 친구가 그것을 꺼 냈을 때, 다른 버전을 사용하기 때문에 많은 일이 바뀌었고, 이제는 그것을 뒤로 밀었다.

본인은 .gitignore 파일에 추가 한 :

/.idea/ 

하지만, 자식은 여전히 ​​Github에서의 환매 특약에 해당 폴더의 변경 사항을 보내는 것 같다.

나는 this, 및 스택 오버플로에 대해 몇 가지 질문을 포함하여 몇 가지 사항을 확인했습니다.

나는 git rm --cached .idea/을 실행했으며 성공적으로 변경 사항을 푸시하지 못했습니다. 그러나 다른 브랜치를 체크 아웃 한 다음이 브랜치로 돌아 가면 해당 파일이 .idea 디렉토리에 포함되지 않습니다.

.gitignore에 추가 그래서 경우에도

이미 저장소에 추적 혼란 코더

+1

않을까요'/ .idea /'루트 수준'폴더 .idea' 아닌 하나를 무시 프로젝트 디렉토리에 있습니까? – pjmorse

+0

폴더의 내용이 사라 지므로 .idea 폴더를 무시하는 것 같습니다. – FWhitaker

답변

0

파일은 유지됩니다 감사합니다 - 그것은 비 추적 파일에만 영향을. 작업 디렉토리에서 파일을 삭제하지 않고 자식에서 파일을 제거하기 위해, 그것을 삭제하지 않고 제거를위한 파일을 표시합니다

git update-index --force-remove yourFileName 

이를 사용합니다. --force-remove는 전체 폴더를 제거하기 위해, 그래서 이것을 시도, 개별 파일에 작동하는 것 같다 :

find .idea | xargs git update-index --force-remove 
+0

내가 커밋하면 다른 브랜치를 체크 아웃 한 다음 첫 번째 브랜치를 체크 아웃하면이 파일들이 사라집니다. – FWhitaker

+0

파일이 그 브랜치에서 여전히 커밋되어 있기 때문에 그 파일이 더 이상 존재하지 않는 브랜치로 다시 전환 할 때 git은 작업 디렉토리에서 파일을 제거해야한다고 생각합니다. 그러나 디렉토리를 전환 한 모든 브랜치에서 제거한 경우 무시해도 체크 아웃간에 보존되어야합니다. –

관련 문제