。gitignore递归除.c和.h以外的所有内容

问题描述 投票:0回答:1

我想忽略某个文件夹及其子文件夹中的所有内容,但.c.h文件除外。

但在本地,我也需要其他文件。在添加.gitignore之前或之后,我是否必须在git-repo中拥有这些不应跟踪的文件?

我该怎么做?:

#ignore all
*
#but:
!source/**/*.c
!source/**/*.h

这是我当前的解决方案,但是它不起作用。但是我认为这也与时间点有关,在这个时间点上我必须添加文件,应该忽略这些文件,但是需要在本地存放这些文件?

c git gitignore
1个回答
0
投票

问题在于模式

*

也不包括所有目录。根据the gitignore documentation

如果排除了该文件的父目录,则无法重新包含该文件。

诸如您的方法应该在您的源树的叶目录中起作用。 gitignore模式格式没有提供区分目录和常规文件的方法,因此,您只需要对其他目录更具选择性即可。一种可能性是在每个gitignore文件中放入包含其所有子目录的文件。

另外,你说的对也是

但是我认为这也与时间点有关,在该时间点我必须添加文件,应将其忽略

在某种意义上,gitignore不适用于已经跟踪的文件。

© www.soinside.com 2019 - 2024. All rights reserved.