루트의 .gitignore 규칙을 제외하고 하위 디렉토리의 모든 .gitignore 규칙을 무시하고 싶습니다.
예) 나는 이미 .gitignore
디렉토리 구조에 파일을 가지고 있습니다 /a
.
또한이 .gitignore
에서 파일을 /a/b
. 가정 /a
이 a.txt
b.txt
파일을.
/a/b
.config
파일 이 있습니다. .gitignore
정의 .config
에 /a/b
.
.config
파일이 무시됩니다 .gitignore
에서 /a/b
.
하지만 하위 디렉토리의 .config
규칙을 무시 하여 파일 을 추적하고 싶습니다 .gitignore
.
가능합니까?
미리 감사드립니다
답변
귀하의 질문은 너무 명확하지 않지만 다른 gitignore 규칙을 원하는 하위 디렉토리가 있으면 해당 디렉토리에 새 .gitignore를 만들 수 있습니다.
당신이 가지고 있다고 :
project / .gitignore 프로젝트 / 물건 /.gitignore
stuff /의 .gitignore는 루트 디렉토리의 .gitignore를 재정의합니다.
git help gitignore
또는 man gitignore
가능한 것에 대해 훨씬 더 많은 정보를 가지고 있습니다.
답변
node_modules
저장소 에 포함 하고 싶지만 일부 모듈에는 .gitignore
자체가 있습니다. 루트 .gitignore
파일에 다음을 추가하여 규칙을 무효화 할 수 있습니다 .
# Make sure to include everything in node_modules.
!node_modules/**
답변
여기서 문제의 핵심은 상위 디렉토리가 제외된다는 것입니다. 에서 $ man gitignore
:
해당 파일의 상위 디렉토리가 제외 된 경우 파일을 다시 포함 할 수 없습니다. Git은 성능상의 이유로 제외 된 디렉터리를 나열하지 않으므로 포함 된 파일의 모든 패턴은 정의 된 위치에 관계없이 영향을주지 않습니다.
여기에 내가 작동하게 된 방법이 있습니다. 주어진:
/a/...
/b/foo
/c/...
/.gitignore
:
/*
!/b
다음 /b/foo
의 모든 상태로 포함 된 파일을 보여줍니다 /a
및이 /c
제외됩니다. 트레이드 오프는 파일을 포함하려는 디렉토리의 모든 부모에 대해 부정을 추가해야한다는 것입니다.
답변
내가 아는 한 그것을 할 방법이 없습니다. 로컬 .gitignore가 루트 ginignore를 덮어 쓰므로 내 해결 방법은 수동으로 추가하는 것입니다.
git add --force [ your file and folder]