자식 로컬 캐시 지우기


92

커밋하려는 Webstorm 프로젝트가 있지만 Git Windows GUI에서 커밋 버튼을 누르기 전에 .idea폴더 내용 을 커밋하고 싶지 않다는 것을 기억했습니다 .

그래서 .gitignores특정 IDE에 대해 자동 생성되는 웹 사이트를 사용하여 내 .gitignore파일에 추가했습니다 .

.idea명시 적으로 무시 된 모든 파일은 내가 문제의 파일을 제거하고 다시 추가 했음에도 불구하고 여전히 커밋으로 표시됩니다.

또한 다른 파일없이 gitignore 파일을 커밋하고 내 콘텐츠를 다시 붙여 넣었지만 여전히 .idea 파일을 무시하지 않습니다.

캐시를 새로 고치거나 지우도록 Git에 어떻게 지시합니까?
문제의 디렉토리에 / cd ing을 시도하고 다음을 입력했습니다.

git clean -n

그러나 파일이 표시되지 않습니다.

답변:


120

명시 적으로 무시 된 모든 .idea 파일이 여전히 커밋에 표시됩니다.

대기 장소에서 제거해야합니다.

git rm --cached .idea

이제 이러한 변경 사항을 커밋해야하며이 시점부터 무시됩니다.
일단 git이 변경 사항을 추적하기 시작하면 .gitignore나중에 파일에 추가 되더라도 추적을 "중지"하지 않습니다 .

당신은 있어야합니다 명시 적으로 제거하고 완전히 그들을 무시하기 위해 수동으로 제거를 커밋합니다.


여기에 이미지 설명 입력

여기에 이미지 설명 입력


3
이것은 나에게 말한다 ..하지만 난 무시하기 위해 노력하고있어 파일을 커밋하지fatal: pathspec '.idea' did not match any files
jozenbasin

git status를 입력하면 표시됩니까? 당신이 자동 추가 파일에있는 확인란 표시된 경우 WebStorm은 당신을 위해 그 (것)들을 추가했을 수
CodeWizard

2
나는 잘 모르겠지만 치명적인 오류를 반환 했음에도 불구하고 내게 준 명령이 작동하는 것 같습니다 .... 파일이 더 이상 커밋되지 않습니다.
jozenbasin

당신은 추가하는 것이 좋습니다 -r재귀 제거
Vishrant

79

git이 엉망이라고 생각되면이 명령을 사용하여 모든 것을 최신 상태로 할 수 있습니다.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

또한 마지막 커밋으로 되돌리려면 다음을 사용하십시오.

git reset HEAD^ --hard

6
변경 사항을 리모컨에 푸시하지 않으려면 git push를 사용하지 마십시오. 그러나 그렇게했다면 안드로이드 스튜디오 하단의 버전 관리 탭으로 이동하여 이전 커밋을 마우스 오른쪽 버튼으로 클릭하고 "현재 분기를 여기로 재설정"을 선택하십시오.
Swapnil

재설정 부분은 기껏해야 혼란 스러웠습니다. 그러나 나는 'git push'까지했고 괜찮 았습니다.
Seun S. Lawal

6

git ignore에서 변경 사항을 수행하면 git cache도 지워야합니다.

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

특정 폴더 나 파일을 제거하려면

git rm  --cached filepath/foldername


3

git-ignore 파일의 변경 후이 명령을 실행하십시오.이 명령은 파일이나 변경 사항이 아닌 모든 파일 캐시를 제거합니다

git rm -r --cached.

이 명령을 실행 한 후 파일을 커밋

캐시에서 단일 파일 또는 폴더를 제거하려면이 명령을 사용하십시오.

git rm --cached 파일 경로 / 폴더 이름


2

캐시 된 .idea / 디렉토리를 제거합니다. 예 :git rm -r --cached .idea

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.