“.gitignore”文件无法正确排除子文件夹的问题

3
我会把 .gitignore 文件中以下所示的某些文件夹以外的所有文件都忽略掉。
  *
  !.gitignore
  !/sample1/test1/
  !sample1/test1/*

我的问题是,它只跟踪已经存在于test1文件夹下的文件,当我创建新文件时,它会忽略跟踪它。

请问有什么解决方案吗?

2个回答

2

您不能直接包含已经排除的嵌套目录。* 排除所有内容,因此首先需要对 sample1 目录的排除进行否定,然后再对 test1 子文件夹进行排除。这将按照您的期望工作:

*
!.gitignore
!/sample1/
/sample1/*
!/sample1/test1
!/sample1/test1/*

谢谢,但它仍然无法跟踪test1下的新文件。 - Pentagon
1
@五角大楼 只需在末尾添加!sample1/test1/*即可。 - klutt
@klutt:我仍然无法跟踪test1下的新文件。 - Pentagon
你说得对@klutt。我已经编辑了上面的评论。我测试过了,对我来说按预期工作。 - mrf
@mrf,感谢您的编辑,它在test1下运行良好。我想知道如果创建其他子目录,是应该像上面那样添加所有内容,还是有一些接受所有继承文件夹的方法。 比如说: /sample1/test1/test2/test3/... - Pentagon
显示剩余3条评论

1
这段文字的英译中文是:

当我尝试时,它起作用:


*
!.gitignore           
!sample1/
sample1/*
!sample1/test1/
!sample1/test1/*

谢谢Klutt,但有没有一种方法可以一次获取整个嵌套文件夹? 假设我们有许多嵌套的文件夹,如/sample1/test1/test2/test3/... 在这种情况下,我们如何排除sample1文件夹下的所有子文件夹? - Pentagon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接