답변:
로부터 문서 :
패턴에 슬래시 (/)가 포함되어 있지 않은 경우, git은 패턴을 쉘 glob 패턴으로 취급하고 .gitignore 파일의 위치 (.gitignore가 아닌 경우 작업 트리의 최상위 레벨과 관련)에 대한 경로 이름과 일치하는지 확인합니다. 파일).
선행 슬래시는 경로 이름의 시작과 일치합니다. 예를 들어 "/*.c"는 "cat-file.c"와 일치하지만 "mozilla-sha1 / sha1.c"와는 일치하지 않습니다.
따라서 루트에 다음 줄을 추가해야합니다 .gitignore
.
/config.php
/folder/
?
/folder/
또는 /folder
작동하지만 끝에 슬래시를 추가하면 폴더에만 경기를 제한하는 것입니다. 루트 디렉토리에 'foo'라는 파일이 있다면, /foo/
무시하지 말고 무시하십시오 /foo
.
git rm --cached <file>
. 그렇지 않으면 파일이 무시되지 않습니다. 보낸 사람 : stackoverflow.com/a/1274447
위의 해결 방법으로 문제가 해결되지 않으면 다음을 시도하십시오.
#1.1 Do NOT ignore file pattern in any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php
##########################
# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php
/config.php
혼자서는 그렇지 않지만 이것은 실제로 나를 위해 작동합니다 . 왜 그렇지 않은지 궁금합니다. 당신은 아이디어가 있습니까?
~/.gitignore
자신의 컴퓨터에 다른 파일을 가지고 있는지 여부에 따라 repo가 다르게 동작 할 수 있음을 의미합니다 . 게다가 내 요점은 "위의 솔루션이 작동하지 않는 경우"라고 쓴 이유는 무엇입니까?