.gitignore는 모든 파일을 무시하고 * .foo를 재귀 적으로 허용합니다.
.gitignore는 모든 파일을 무시하고 * .foo를 재귀 적으로 허용합니다.
이미 이와 유사한 몇 가지 질문이 있지만 대답 중 어느 것도 저에게 효과가 없습니다.
* .foo 파일을 제외하고 내 저장소 아래 폴더의 모든 것을 무시하고 싶습니다.
(누군가 이것이 어떻게 정당화 될 수 있는지 궁금하다면-나는 실제로 모든 "Logic"프로젝트 (Mac의 음악 소프트웨어)를위한 git 저장소를 만들고 있지만 실제 프로젝트 파일 * .logic 만 저장하고 싶습니다.)
철자를 써서 우리는 모두 같은 판에 있습니다. 처음부터 시작하는 작업은 다음과 같습니다.
설정:
mkdir temp
cd temp
mkdir testdir
cd testdir
touch include.foo
touch dontinclude.bad
cd..
git init
touch .gitignore
.gitignore에 붙여 넣기
# Ignore all
/*
# But not these files...
!.gitignore
!*.foo
자식 상태
추적되지 않은 유일한 파일은 .gitignore입니다.
내가 'git add.'를 입력하면 -변경 사항이 없으며 .gitignore 만 표시되고 2 개의 파일이 무시됩니다.
이것이 작동하지 않는 이유는 무엇이며 작동하도록 위의 절차를 어떻게 변경할 수 있습니까?
.gitignore 파일을 가져온 매우 유사한 질문이 있습니다. git --version 1.7.7 (1.7.3도 시도)-. gitignore를 사용하여 모든 파일을 무시한 다음 특정 유형의 파일을 재귀 적으로 허용합니다.
문제는 /*
처음 의 패턴이을 포함하여 최상위 수준의 모든 파일 및 디렉토리와 일치 testdir
하므로 내부의 모든 testdir
것이 무시 된다는 것 입니다 .
이것이 당신이 원하는 것입니다.
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore and *.foo files
!.gitignore
!*.foo
git add .
이 구성으로을 수행하면 커밋 할 변경 사항으로 나열된 .gitignore
및 *.foo
파일 만 있음을 알 수 있습니다 .
참조 URL : https://stackoverflow.com/questions/8024924/gitignore-ignore-all-files-then-recursively-allow-foo