2010-03-19 3 views
52

.gitignore에 일치 항목을 재귀 적으로 추가하지 않으려면 어떻게하나요?.gitignore에 무언가를 추가하여 일치가 재귀가되지 않도록하는 방법은 무엇입니까?

예를 들어, 현재 디렉토리에서 foo 디렉토리와 bar.txt 파일을 무시하고 싶지만 하위 디렉토리에는 존재하지 않습니다.

.gitignore 파일이 시도 : otherdir/bar.txtotherdir/foo/도 내가 원하는하지 않은 무시받을 있도록

foo/ 
bar.txt 

그러나 불행하게도 자식이 재귀이 적용됩니다.

(모두 무시 파일을 나에게 보여 자식의 명령이 있는가, 무시되는 파일에 대한 책임이있는 .gitignore 파일을 참조? 이것은 디버깅에 유용합니다.)

답변

91

이 솔루션은을 배치하는 것입니다 .gitignore 항목에 슬래시를 선도 :

/foo/ 
/bar.txt 

(이 완벽하게 작동하기 때문에, 나는에 유래에 게시하기 전에이 시도 생각하지만 분명히 내가 제대로 시도하지 않았다.)

+0

당신이 이것을 시도해 볼 수 있으며 어딘가에 선행/후행 공백이있어 어딘가에 .gitignore에 문제가 발생할 수 있습니다. 누가이 질문이 나에게 도움이 됐는지 어느 쪽인지 알고있다. –

11

을 gitig에서 기타 맨 페이지 :

접두어 (선택 사항)! 패턴을 무효화합니다. 이전 패턴으로 제외 된 일치하는 파일이 다시 포함됩니다. 부정 된 패턴이 일치하면, 우선 순위가 낮은 패턴 소스가 대체됩니다.

따라서 !*은 .gitignore의 첫 번째 줄에 이전 패턴을 모두 지 웁니다.

+0

좋아, 분명히 내가 항상 훨씬 더 복잡한 방식으로 작업하고 있었다 :] +1은 슬래시 답장을 위해, 아직 업 보턴화할 수 없다. – hermannloose

+0

+1 그래서 지금 upvote 수 :) 또한, 나는 몰랐다! 접두사. –