Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将.gitignore文件应用于存储库中包含单个项目的所有子文件夹的简单方法_Git_Gitignore_Subdirectory - Fatal编程技术网

将.gitignore文件应用于存储库中包含单个项目的所有子文件夹的简单方法

将.gitignore文件应用于存储库中包含单个项目的所有子文件夹的简单方法,git,gitignore,subdirectory,Git,Gitignore,Subdirectory,我有一个包含很多子文件夹的Git存储库,每个子文件夹都是IntelliJ IDEA项目 我发现了一个JetBrains.gitignore,它忽略IntelliJ IDEA项目中的文件,我想将其应用于这些子文件夹中的所有此类项目 当然,我可以为每个项目创建一个副本,或者将其保留在根文件夹中,然后编辑.gitignore文件中的模式,以匹配子文件夹中的文件 但是,我想知道是否有比复制或编辑长.gitignore文件更简单的方法来实现这一点。为什么不编写一个脚本来实现这一点呢 猛击 为什么不写一个脚

我有一个包含很多子文件夹的Git存储库,每个子文件夹都是IntelliJ IDEA项目

我发现了一个JetBrains.gitignore,它忽略IntelliJ IDEA项目中的文件,我想将其应用于这些子文件夹中的所有此类项目

当然,我可以为每个项目创建一个副本,或者将其保留在根文件夹中,然后编辑.gitignore文件中的模式,以匹配子文件夹中的文件


但是,我想知道是否有比复制或编辑长.gitignore文件更简单的方法来实现这一点。

为什么不编写一个脚本来实现这一点呢

猛击
为什么不写一个脚本来帮你呢

猛击
若要忽略同一组文件,请将该.gitignore文件放入Git存储库的根目录中,并在应用于所有子目录的所有行前面加上通配符/*/。相同的文件集将在所有子目录中被忽略,而无需在添加或删除子目录时更新.gitignore

如果在开始或中间或两者都有分隔符 模式,则该模式是相对于 特定的.git忽略文件本身

因此,如果您有以下目录结构:

my_repo/
  .gitignore
  project1/
    foo.txt
    bar.txt
  project2/
    foo.txt
    bar.txt
如果要忽略所有项目目录中的bar.txt,则.gitignore将为:

/*/bar.txt

若要忽略同一组文件,请将该.gitignore文件放入Git存储库的根目录中,并在应用于所有子目录的所有行前面加上通配符/*/。相同的文件集将在所有子目录中被忽略,而无需在添加或删除子目录时更新.gitignore

如果在开始或中间或两者都有分隔符 模式,则该模式是相对于 特定的.git忽略文件本身

因此,如果您有以下目录结构:

my_repo/
  .gitignore
  project1/
    foo.txt
    bar.txt
  project2/
    foo.txt
    bar.txt
如果要忽略所有项目目录中的bar.txt,则.gitignore将为:

/*/bar.txt


你能发布你的.git吗。您应该能够将其应用于所有目录。所有项目的这些文件都相同吗?@Encrypted西瓜@Bulli是的。很好,然后您继续下面的回答。您可以发布您的.gitignore吗。您应该能够将其应用于所有目录。这些文件对于所有项目都是相同的吗?@Encrypted西瓜@Bulli是的。很好,如果所有目录都共享要忽略的文件,为什么不将它们放在一个顶级gitignore中,然后在项目文件夹中添加特定的忽略项?据我所知,不是一个git项目,而是多个git项目projects@CodeWizard它是一个单一的Git存储库,但它包含许多IntelliJ IDEA项目,在这种情况下,您可以使用一个全局gitignore,为什么需要多个呢?如果所有目录共享要忽略的文件,为什么不将它们放在一个顶级gitignore中,然后在项目文件夹中添加特定的忽略项?据我所知,不是单个git项目,而是多个git项目projects@CodeWizard它是一个单一的Git存储库,但是它包含许多IntelliJ IDEA项目。所以,在这种情况下,您可以使用一个全局gitignore,为什么需要多个呢?您只需要bar.txt。我想这不是问题的关键。OP在每个目录中都有一组常量文件,他只想忽略那个些我是如何理解zis问题的。所以ze不一定要忽略project1/some/foo/bar.txt,但只有project1/bar.txt。谢谢你的澄清,虽然这正是我在问题中的意思,将其保留在根文件夹中,并编辑.gitignore文件中的模式以匹配子文件夹中的文件,这不是我想要的,这似乎是目前可能的最佳方法。@ShreckYe我理解,但这就是.gitignore文件的工作原理-它只适用于它所在的目录,并且下面的目录最终会覆盖上面目录中文件的相同规则。还有其他选项可以全局忽略文件,例如core.excludesFile配置选项或.git/info/exclude file-请参阅,但这些选项是特定于单用户工作流的,不会使用repo推送或克隆。所以,为了完整地回答您的问题,我所建议的可能是您使用.gitignore.you只需要bar.txt就可以了。我想这不是问题的关键。OP在每个目录中都有一组常量文件,他只想忽略那个些我是如何理解zis问题的。所以ze不一定要忽略project1/some/foo/bar.txt,但只有project1/bar.txt。感谢您的澄清虽然这正是我在问题中的意思,将其保留在根文件夹中,并编辑.gitignore文件中的模式以匹配子文件夹中的文件,这不是我要寻找的,但这似乎是目前可能的最佳方法。@ShreckYe I unde rstand但这就是.gitignore文件的工作方式-它只适用于它所在的目录和下面的目录,最终覆盖上面目录中文件的相同规则。还有其他选项可以全局忽略文件,例如core.excludesFile配置选项或.git/info/exclude file-请参阅,但这些选项是特定于单用户工作流的,不会使用repo推送或克隆。所以,完整地回答你的问题——我的建议可能是你能做的最好的。gitignore。