.gitignore가 내 파일을 무시하지 않는 이유는 무엇입니까?


128

아래 이미지를 참조하십시오. 내 .gitignore 파일은 src / dist의 모든 파일을 무시해야하지만 그렇지 않습니다.

여기에 이미지 설명 입력

답변:


219

.gitignore아직 저장소의 일부가 아닌 파일 만 무시합니다. 이미 git add일부 파일을 편집 한 경우 변경 사항이 계속 추적됩니다. 파일 시스템이 아닌 저장소에서 해당 파일을 제거하려면 해당 파일을 사용하십시오 git rm --cached.


9
git rm --cached file_name.ext 한 파일에 대해 gitignore를 업데이트하는 것이 좋습니다. 감사.
sybozz

3
이 작업을 수행했지만 GitHub에서 여전히 추적하고 추가하려고합니다.
Netside

93

.gitignore 파일은 Git에서 추적하지 않는 파일이 추적되지 않도록합니다.

.gitignore 파일에 폴더 / 파일을 추가하는 것만으로는 추적이 해제되지 않고 Git에 의해 추적됩니다.

파일 추적을 해제하려면 .gitignore 파일에 나열된 추적 파일을 저장소에서 제거해야합니다. 그런 다음 다시 추가하고 변경 사항을 커밋하십시오.

가장 쉽고 철저한 방법은 저장소의 모든 파일을 제거하고 캐시 한 다음 모두 다시 추가하는 것입니다. .gitignore 파일에 나열된 모든 폴더 / 파일은 추적되지 않습니다. 저장소의 최상위 폴더에서 다음 명령을 실행하십시오.

git rm -r --cached . git add .

그런 다음 변경 사항을 커밋합니다.

git commit -m "Untrack files in .gitignore"

원치 않는 파일이 포함 된 이전 커밋은 커밋 기록에 남아 있습니다. GitHub로 푸시 할 때 .env또는 client_secret.json파일을 포함 할 수있는 커밋 기록을 알고 있어야 합니다.

모범 사례 는 .gitignore 파일을 만들고 프로젝트를 시작할 때 추적하지 않으려는 폴더 / 파일로 채우는 것입니다. 그러나 종종 원하지 않는 파일이 추적 및 저장되고 있음을 인식 한 후 .gitignore 파일에 추가해야합니다.


답변 감사합니다. 이것은 정말 도움이되었습니다. 리포지토리를 git까지 푸시하는 것을 잊지 마세요
Chris Reed

git rm -r --cached .롤백을 사용한 후에는 모든 변경 사항이 .gitignore 로 제외되지 않아야하는 모든 파일을 다시 추가하는데도 작동합니다 .
Adam Hurwitz

8

gitignore는 추적되지 않은 파일 만 무시합니다. 파일은 수정 된 것으로 표시됩니다. 즉, 커밋되었고 과거와 이제는 git이 추적합니다.

무시하려면 먼저 삭제하고 git rm커밋 한 다음 무시해야합니다.


6

git rm -r --cached ./node_modules 사용할 수 있습니다. 노드를 무시하고 싶다면


4

이것 좀 봐 : .gitignore 작동하지 않습니다 ADTC에서 그리고 특히 말 :

.gitignore 파일이 ANSI 또는 UTF-8 인코딩을 사용하는지 확인하십시오. 유니 코드 BOM과 같은 다른 것을 사용하는 경우 Git이 파일을 읽을 수 없습니다. – ADTC '17 -12-14 12:39


0

먼저 git repo에서 index.lock 파일을 삭제하십시오.

rm -f .git/index.lock

그런 다음 .gitignore를 추가하십시오.

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