我的git repo目录如下:
--ignore_dir/
----dir2/
------ignorea3.txt
----aaa.txt
----ignorea2.txt
--ignorea1.txt
--ignore1.txt
--.gitignore
.gitignore
文件,如下所示:
/*
!/**/ignorea*.txt
与git status
一起输出:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
ignorea1.txt
nothing added to commit but untracked files present (use "git add" to track)
我的问题是为什么它不跟踪文件:ignore_dir/dir2/ignorea3.txt
和ignore_dir/ignorea2.txt
谢谢!
更新
谢谢@RomainValeri和@torek,
我可以通过编辑gitignore文件来实现此目的的复杂方法:
/*
!/ignore_dir/
/ignore_dir/*
!/ignore_dir/dir2/
/ignore_dir/dir2/*
!/ignore_dir/dir2/ignorea*.txt
!/ignore_dir/ignorea*.txt
它可以明确跟踪ignorea*.txt
的每个父级目录。
此外,这将不起作用:
/*
!**/ignorea*.txt
希望有人可以给出优雅的方式!
答案 0 :(得分:1)
来自doc:
可选的前缀“!”否定了模式;先前模式排除的所有匹配文件将再次包含在内。 如果排除了该文件的父目录,则无法重新添加该文件。
(重点是我的)
因此,由于第一个模式排除了目录.ngb-dp-today {
background: yellow;
}
和ignore_dir
,因此在下一行重新包含其中的文件将不起作用。
尝试失败:
dir2
但是作为torek mentions below,这不起作用。有待改进。