有没有办法告诉git只包含某些文件,而不是忽略某些文件?
我的程序通常会生成巨大的输出文件(〜1 GB),我不想备份到git存储库。 所以,而不是能够做到
git add .
我必须做类似的事情
git add *.c *.cc *.f *.F *.C *.h *.cu
这是一个有点麻烦…
我感到相当有信心,我可以写一个快速的Perl脚本的目录内容到.gitignore,然后删除基于.gitinclude(或一些类似的名称)文件的文件,但这似乎有点太hackish。 有没有更好的办法?
我没有必要自己去尝试,但是从我阅读TFM看起来,一个否定的模式会做你想做的事情。 您可以覆盖.gitignore中的条目,以后使用否定条目。 因此,你可以做一些事情:
*.c !frob_*.c !custom.c
要让它忽略除custom.c之外的所有.c文件以及任何以“frob_”开头的内容
在你的仓库中创build.gitignore文件,你只想跟踪c文件,并忽略所有其他文件,然后添加以下行….
* !*.c
'*'将忽略所有文件
和! 将否定文件被忽略….所以这里我们要求git不要忽略c文件….
实现这一目标的最佳解决scheme
在repository root
创build.gitignore
文件,如果你只想包含.c
文件,那么你需要在.gitignore
文件
*.* !*.c
这将recursion地包括来自目录和子目录的所有.c文件。
运用
* !*.c
将无法在所有版本的git上工作。
testing
git版本2.12.2.windows.2