How to I add something to the .gitignore so that the match is not recursive?

徘徊边缘 提交于 2019-12-03 06:27:55

问题


How to I add something to the .gitignore so that the match is not recursive?

For example, I wish to ignore the directory foo and the file bar.txt in the current directory, but not any that exist in subdirectories.

I have tried this for my .gitignore file:

foo/
bar.txt

But unfortunately git applies this recursively, so that otherdir/bar.txt and otherdir/foo/ also get ignored, which is not what I want.

(Is there a command in git that shows me all ignored files, and reference the .gitignore file that is responsible for the file being ignored? This would be useful for debugging.)


回答1:


The solution is to place a leading slash on the .gitignore entries:

/foo/
/bar.txt

(I thought I tried this before posting on StackOverflow, but clearly I hadn't tried it properly, as this works perfectly.)




回答2:


From the gitignore manpage:

An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again. If a negated pattern matches, this will override lower precedence patterns sources.

So !* as the first line in your .gitignore will clear all previous patterns.



来源:https://stackoverflow.com/questions/2476718/how-to-i-add-something-to-the-gitignore-so-that-the-match-is-not-recursive

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!