有没有办法通过.gitignore文件(或通过git版本控制)来忽略子目录中.gitignore文件的影响?特殊的用例是,我将开源文件夹复制到我的git代码库中,而这些开源文件夹有自己的.gitignore文件,我想忽略这些文件。我不想经历手动删除它们的过程,因为每当我把最新的源文件夹带过来时,我都必须记住/automate/等删除这些文件。相反,我希望能够有一个如下所示的文件夹结构:
file1.c
.gitignore
module1/
src1.c
.gitignore
...
module2/
src2.c
.gitignore
...在那里应用根.gitignore,但模块文件夹中的所有.gitignore都被忽略。如果它们被提交给源代码管理,这不是问题。但目标是忽略整个目录中那些.gitignore文件内容的影响。
发布于 2021-10-01 20:50:47
您不能通过.gitignore文件做到这一点,因为它们有一个层次/优先级系统,其中“内部”.gitignore覆盖来自“外部”.gitignore的任何指令。因此,即使您添加外部.gitignore否定:
!inner/foo为了阻止inner/.gitignore列出inner/foo,它没有做到这一点。
但是,您可以通过.git/info/excludes完成此操作,因为它具有比任何.gitignore更高的优先级。.git/info/excludes文件永远不会提交,因此您必须将数据存储在其他地方(例如,在已提交的文件中),然后将其复制到您创建的每个克隆的适当位置。
我不知道你真正的终极目标,但这闻起来像XY problem。
https://stackoverflow.com/questions/69409937
复制相似问题