我有components/root/js/
和components/example/js/
的目录,我不希望Git跟踪这些目录。
但是,我有一个目录components/root/js2/plugins/js/
,我希望由Git跟踪。
我在网上查了一下,发现只有**
,我认为这并不能解决我的问题。
我当前的.gitconfig
包含以下行:
js/
我尝试将其更改为:
components/**/js/
但这匹配components/root/js/
,components/example/js/
,还有components/root/js2/plugins/js/
(第js
级以下的components
文件夹 - 我只想忽略第二级js
个文件夹。)
我如何实现这一目标?
答案 0 :(得分:1)
好的,这个怎么样:
js/
!components/root/js2/plugins/js/
除js
之后指定的目录外,它将忽略所有名为!
的目录。在这种情况下,git
会忽略components/root/js/
,但不会忽略components/root/js2/plugins/js/
。
**
无效,因为正如man gitignore
中所述:
尾随“**”匹配内部的一切。例如,“abc / **” 匹配目录“abc”内的所有文件,相对于位置 .gitignore文件,具有无限深度。
答案 1 :(得分:1)
如果目录稍后移动,您可以将.gitigore
个文件放在任何目录中,这将是一个更可靠的解决方案。
我会创建2个.gitignore
个文件:
项目根目录/.gitignore
的一个排除了js
JS
plugins
目录/components/root/js2/plugins/.gitignore
中的一个覆盖根.gitignore
!JS
如果稍后将移动plugins
目录,例如到components/root/plugins
.gitignore
也会被移动。
如果您在根.gitignore
中配置所有内容,则在移动目录时,不要忘记编辑根.gitignore
。