我想忽略某个文件夹及其子文件夹中的所有内容,但.c
和.h
文件除外。
但在本地,我也需要其他文件。在添加.gitignore
之前或之后,我是否必须在git-repo中拥有这些不应跟踪的文件?
我该怎么做?:
#ignore all
*
#but:
!source/**/*.c
!source/**/*.h
这是我当前的解决方案,但是它不起作用。但是我认为这也与时间点有关,在这个时间点上我必须添加文件,应该忽略这些文件,但是需要在本地存放这些文件?
问题在于模式
*
也不包括所有目录。根据the gitignore
documentation,
如果排除了该文件的父目录,则无法重新包含该文件。
诸如您的方法应该在您的源树的叶目录中起作用。 gitignore模式格式没有提供区分目录和常规文件的方法,因此,您只需要对其他目录更具选择性即可。一种可能性是在每个gitignore
文件中放入包含其所有子目录的文件。
另外,你说的对也是
但是我认为这也与时间点有关,在该时间点我必须添加文件,应将其忽略
在某种意义上,gitignore不适用于已经跟踪的文件。