.gitignore 用于特定深度的目录?
.gitignore for directories at a specific depth?
我在 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/
(components
二级以下的 js
文件夹 - 我只想要忽略第二层的 js
个文件夹)。
我怎样才能实现这个目标?
好的,这个怎么样:
js/
!components/root/js2/plugins/js/
它将忽略所有名为 js
的目录,但在 !
之后指定的目录除外。在这种情况下 git
将忽略 components/root/js/
但不会忽略 components/root/js2/plugins/js/
.
**
将不起作用,因为正如 man gitignore
中所说:
A trailing "**" matches everything inside. For example, "abc/**"
matches all files inside directory "abc", relative to the location of
the .gitignore file, with infinite depth.
您可以将 .gitigore
个文件放在任何目录中,如果以后移动目录,这将是一个更可靠的解决方案。
我会创建 2 .gitignore
个文件:
项目根目录 /.gitignore
中的一个,不包括 js
js
plugins
目录 /components/root/js2/plugins/.gitignore
中的一个覆盖根目录 .gitignore
!js
如果稍后移动plugins
目录,例如components/root/plugins
.gitignore
也将移动。
如果您在根目录 .gitignore
中配置所有内容,则在移动目录时一定不要忘记编辑根目录 .gitignore
。
我在 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/
(components
二级以下的 js
文件夹 - 我只想要忽略第二层的 js
个文件夹)。
我怎样才能实现这个目标?
好的,这个怎么样:
js/
!components/root/js2/plugins/js/
它将忽略所有名为 js
的目录,但在 !
之后指定的目录除外。在这种情况下 git
将忽略 components/root/js/
但不会忽略 components/root/js2/plugins/js/
.
**
将不起作用,因为正如 man gitignore
中所说:
A trailing "**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .gitignore file, with infinite depth.
您可以将 .gitigore
个文件放在任何目录中,如果以后移动目录,这将是一个更可靠的解决方案。
我会创建 2 .gitignore
个文件:
项目根目录
/.gitignore
中的一个,不包括js
js
plugins
目录/components/root/js2/plugins/.gitignore
中的一个覆盖根目录.gitignore
!js
如果稍后移动plugins
目录,例如components/root/plugins
.gitignore
也将移动。
如果您在根目录 .gitignore
中配置所有内容,则在移动目录时一定不要忘记编辑根目录 .gitignore
。