2014-11-09 2 views
3

그래서 git은 git 저장소 내의 하위 디렉토리에있는 일부 파일을 무시하고 싶습니다.gitignore는 하위 디렉토리에있는 파일을 무시하지 않습니다.

다음과 같이 프로젝트 디렉토리 구조 레이아웃은 기본적으로 :

GIT_ROOT 
---project1 
------src 

내가 자식이 GIT_ROOT/project1에서 특정 파일을 무시해야합니다. .gitignore 파일을 만들고 Makefile 또는 기타 자동 생성 된 보풀 같은 것을 무시하면됩니다. 그러나 autoconf은 하위 디렉토리에 Makefile을 생성하므로 Makefile도 GIT_ROOT/project1/src에 생성됩니다. 당연히 모든 메이크 파일을 무시하고 싶습니다. GIT_ROOT/projectGIT_ROOT/project/src.

나는 GIT_ROOT/project1으로하여 .gitignore 파일에 다음을 추가하여 나는이 작업을 수행 할 수 있다고 생각 :

**/Makefile 
**/Makefile.in 

나의 이해는이 어떤GIT_ROOT/project1에 표시 메이크 무시하는 자식 지시해야한다는 것입니다 - 또는 메이크를 GIT_ROOT/project1/src과 같이 하위 디렉토리에 표시됩니다. 그러나, 내가 실제로 커밋하고 원격 마스터에게 밀어 넣을 때 만이 GIT_ROOT/project1의 Makefile을 무시하지만 더 깊은 디렉토리의 Makefile은 무시하지 않습니다.

모든 하위 디렉토리에 .gitignore 파일을 포함해야합니까? 그렇지 않은 경우 .gitignore 파일이 GIT_ROOT/project1이 아니며은 Makefile에 을 적용하고 있습니까?

+0

'**/Makefile'과'**/Makefile.in'이 저에게 효과적입니다. Git의 어떤 버전을 사용하고 있습니까? 현재 2.0.1 버전을 사용하고 있습니다. 또한'project1'에서 무시할 수 있다면'/ project1/**/Makefile'과'/ project1/**/Makefile.in'을 할 수 있습니다. 이미 버전 제어하에 있기 때문에 무시되지 않을 수도 있습니다 (.gitignore는 버전이있는 파일에는 적용되지 않습니다). – jszakmeister

답변

3

당신은 단순히 GIT_ROOT/project1.gitignore 파일에 추가 할 수 있습니다

Makefile 
Makefile.in 

'*'와일드 카드 필요 없음을.
해당 내용은 project1 및 모든 하위 폴더에 적용됩니다.
git check-ignore -v -- project1/xxx/Makefile으로 확인할 수 있습니다.

무시하지 않으면 이미 버전 관리가되어있는 것입니다. 즉, git rm --cached는 인덱스에서 해당 버전을 제거 할 수 있습니다.

관련 문제