.gitignore - 忽略文件目录

时间:2016-02-04 15:23:50

标签: git

有没有办法创建.gitignore文件夹而不是文件?这样Git会将.gitignore / ignorerulesA和.gitignore / ignorerulesB解析为忽略文件吗?

我可以看到这在我有两个我想要合并的非重叠结构的存储库的场景中很有用。

repoa
  filea
  foldera
  .gitignore/ignorea

repob
  fileb
  folderb
  .gitignore/ignoreb

通过这种结构,我可以合并repoa和repob,没有任何冲突。

如果已经不可能,请求此功能是否有意义?

我不确定我的问题的搜索结果是否如此糟糕,因为:

  1. 也许这只是一个坏主意
  2. 我没有正确的搜索字词" .gitignore文件夹"只是关于如何忽略文件夹的一堆说明。 "多个.gitignore文件"只是谈谈将.gitignores放在不同的文件夹中。
  3. 我是一个属,没有人以前想过这个。
  4. 更新:澄清

    如果我们在上面的示例中使用这两个存储库,并为每个存储库应用不同的.gitignore规则。

    例如在repoa中我想忽略foldera并且在repob中我想忽略fileb。我最终会遇到这种情况

    repoa
      filea
      foldera
      .gitignore
        foldera
    
    repob
      fileb
      folderb
      .gitignore
        fileb
    

    现在我想创建repoab。

    mkdir repoab
    cd repoab
    git init
    git remote add repoa /path/to/repoa
    git remote add repob /path/to/repob
    git pull repoa master
    git pull repob master
    rom ../repob
     * branch            master     -> FETCH_HEAD
    Auto-merging .gitignore
    CONFLICT (add/add): Merge conflict in .gitignore
    Automatic merge failed; fix conflicts and then commit the result.
    

    基本上每次我处理repoa或repob的更新时我都必须处理这个冲突,这当然不是理想的。

3 个答案:

答案 0 :(得分:0)

您可以使用<directoryname>/忽略目录。

在您的示例中,添加file*/将忽略这两个文件夹,如果您尝试合并2个repo / branch,则不会出现合并冲突。

答案 1 :(得分:0)

当您找到&#34;多个.gitignore文件&#34;时,您可以将不同的文件放在不同的目录中,但Git不会在一个目录中处理多个.gitignore文件。通常,Git在pwd中查找这样的配置文件,然后爬到父目录,直到找到一个或到达根目录。该策略与具有多个配置文件的特殊目录无关。

虽然这不会解决您的合并问题(我认为您need submodules),但可以为编辑器交换文件等内容设置全局.gitignore其他合作者不必忽视。我在~/.gitignore有一个,并告诉Git在~/.gitconfig中阅读它:

[core]
  excludesfile = /Users/kristjan/.gitignore

答案 2 :(得分:0)

  

通过这种结构,我可以合并repoa和repob,没有任何冲突。

但你不能。 .gitignore个文件可以有排除项,即使没有这些文件,一个repo也可能希望将某些类型的文件包含在另一个文件中,而另一个文件会生成(并忽略它们)。订单很重要。

您可以将.gitignore放在他们申请的树中,foldera/.gitignore等等。这对于提供文件来说不会有帮助,但是如果你的规格存在冲突,你那里也会有相互冲突的文件,所以忽略这个问题并不是那里的问题。