当前位置:  开发笔记 > 编程语言 > 正文

有没有办法告诉git只包含某些文件而不是忽略某些文件?

如何解决《有没有办法告诉git只包含某些文件而不是忽略某些文件?》经验,为你挑选了3个好方法。

我的程序通常生成巨大的输出文件(~1 GB),我不想备份到git存储库.所以不是能够做到的

git add .

我必须做点什么

git add *.c *.cc *.f *.F *.C *.h *.cu

这有点麻烦......

我相信我可以编写一个快速的perl脚本,将目录内容写入.gitignore,然后根据.gitinclude(或类似名称)文件删除文件,但这似乎有点过于苛刻.有没有更好的办法?



1> T.E.D...:

我没有必要自己尝试这个,但是从我对TFM的阅读看起来,一个否定的模式会做你想要的.您可以使用以后的否定条目覆盖.gitignore中的条目.因此你可以这样做:

*.c
!frob_*.c
!custom.c

让它忽略除custom.c之外的所有.c文件以及以"frob_"开头的任何文件


谢谢,TED这很有效.我所要做的就是用*启动.gitignore文件,然后列出感叹号所包含的所有包含的文件模式.
文件夹怎么样?我无法通过否定规则找到一种方法来包含文件夹和文件.
关于文件夹请查看http://stackoverflow.com/questions/12799855/configure-git-to-track-only-one-file-extension
非常好.我正在使用它在我的主文件夹中有一个存储库,用于vimrc和bashrc之类的东西

2> Vineel Kumar..:

在您的存储库中创建.gitignore文件,您只想跟踪c文件并忽略所有其他文件,然后添加以下行...

*
!*.c

'*'将忽略所有文件

而且!否定文件被忽略....所以这里我们要求git不要忽略c文件....


“ *”即使是。也是通配符,因此隐藏文件也将被忽略,但是所有以.c结尾的隐藏文件都将被包括在内。
使用这种方法我认为子文件夹中的文件也会被忽略.有关详细信息,请查看此信息http://stackoverflow.com/a/11853075/739436

3> Smaranjit..:

实现这一目标的最佳解决方案

.gitignore在存储库中创建文件root,如果您只想包含.c文件,则需要在.gitignore文件中添加以下行

*.*
!*.c

这将包括.c递归目录和子目录中的所有文件.

运用

*
!*.c

不适用于所有版本的git.

经过测试

git版本2.12.2.windows.2

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有