2014-11-10 1 views
1

디렉토리를 무시하는 데 문제가 있지만 무시한 동일한 디렉토리의 하위 디렉토리에 파일을 다시 포함하고 있습니다.gitignore 문제로 디렉토리를 무효화 한 다음 하위 디렉토리에 파일을 다시 포함

folder/ 
    commit-me.txt 
    ignore-me.txt 

.gitignore :

folder/* 
!folder/commit-me.txt 

    폴더 설정을 WORKS

폴더 설정을 작동하지 않습니다

folder/ 
    sub/ 
     commit-me.txt 
     ignore-me.txt 
    ignore-me.txt 

.gitignore : 당신이를 unignored 때문에

folder/* 
!folder/sub/commit-me.txt 

답변

1

힘내 충분히 똑똑하지 않은 하위 디렉토리를 해제 무시 그 안에 파일.

이 작동 :

folder/* 
folder/sub/* 
!folder/sub/ 
!folder/sub/commit-me.txt 
1

당신이 폴더 적어도 수백에 될 때까지, 할 수있는 쉬운 일이 .gitignore 경우 마지막에 !*/를 추가하는 아마. 나중에 그렇지 않다는 말을하지 않으면 git는 디렉토리 전체를 완전히 무시합니다. 그래서 당신은

folder/** 
!folder/sub/commit-me.txt 
!*/ 

후자 !*/ 사양하는 것은 상관없이 당신이 전에 말한,이 디렉토리의 내용을 검사 안 자식을 알 수있을 것이다. 그래서 git는 디렉토리를 추적하지 않기 때문에 실제 내용에 대한 경로 이름 구성 요소로만 신경 씁니다. 디렉토리를 무시하지 않으면 아무 것도 커밋되지 않습니다. git은 (이전에 일치 된) 디렉토리를 건너 뛰지 않습니다. 그것의 수색.

**은 "여기에도 임의의 수의 디렉토리 레벨을 일치시킵니다"라는 의미이며, git 1.8.4부터는 git 자체가 일치하므로 모든 곳에서 사용할 수 있습니다. - 하위 폴더 내에서 그것을 결코 일치하는 파일 이름을하지만, 폴더를 무시하기 때문에 folder/*folder에서 직접 이름과 일치합니다

는 전체 디렉토리를 피하기 위해 !*/을 사용하는 것이 중요하다 ***의 차이를 무시 이것이 전체 내용을 무시한 것은 분명하지 않다.

몇 가지 상황에서 the gitignore rules과 함께 해본 적이 있다면, 그들은 잘 이해할 수 있습니다. 그리고 내가 본 중에있는 산문 묘사보다 배우기에 더 좋은 소식을 듣게된다면 이해할 수 있습니다.

+0

죄송합니다. 솔루션이 작동하고 구문이 깨끗하지만 죄송합니다. – u01jmg3

+0

걱정하지 않으셔도, 똑같은 일이 있었기 때문에 나쁜 전화였습니다. – jthill

+0

차가움.답안에서 이중 별이 무엇을하는지 명확히 할 수 있습니까? – u01jmg3