繁体   English   中英

.gitignore-忽略文件目录

[英].gitignore - directory of ignore files

有什么方法可以创建.gitignore文件夹而不是文件? 这样Git会将.gitignore / ignorerulesA和.gitignore / ignorerulesB都解析为忽略文件?

我可以看到这在我有两个要合并的非重叠结构存储库的情况下很有用。

repoa
  filea
  foldera
  .gitignore/ignorea

repob
  fileb
  folderb
  .gitignore/ignoreb

通过这种结构,我可以合并repoa和repob而不会发生任何冲突。

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

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

  1. 也许这只是一个坏主意
  2. 我没有正确的搜索词“ .gitignore文件夹”,只是关于如何忽略文件夹的一堆指令。 “多个.gitignore文件”只是谈论将.gitignores放置在不同的文件夹中。
  3. 我是一个属,以前没有人想到过。

更新:澄清

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

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

repoa
  filea
  foldera
  .gitignore
    foldera

repob
  fileb
  folderb
  .gitignore
    fileb

现在我要创建仓库。

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的更新时,我都必须处理这种冲突,这当然不是理想的。

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

在您的示例中,添加file*/将忽略两个文件夹,并且如果您尝试合并2个仓库/分支,则不会发生合并冲突。

当您搜索“多个.gitignore文件”时,可以将不同的文件放在不同的目录中,但是Git不在一个目录中处理多个.gitignore文件。 通常,Git在您的pwd寻找这样的配置文件,然后爬到父目录,直到找到一个或到达根目录为止。 该策略与拥有包含多个配置文件的特殊目录没有关系。

尽管这不能解决您的合并问题(我认为您需要子模块 ),但是您可以为其他协作者不需要忽略的诸如编辑器交换文件之类的内容设置全局.gitignore 我在~/.gitignore有一个,告诉Git在~/.gitconfig阅读它:

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

通过这种结构,我可以合并repoa和repob而不会发生任何冲突。

但是你不能。 .gitignore文件可以具有排除项,即使没有这些排除项,一个回购也可能会期望包含某些类型的文件,而另一个则希望它们会生成(因此忽略它们)。 顺序很重要。

您可以将.gitignore放入应用于它们的树中, foldera/.gitignore等等。 这对顶级文件没有帮助,但是如果那里的规范冲突,那么那里的文件也会冲突,因此,忽略混乱并不是真正的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM