我可以在.gitignore文件中包含其他.gitignore文件吗? (比如c-like语言中的#include)

时间:2011-08-10 02:07:32

标签: git gitignore

我有一些文件,例如vim.gitignoreSVN.gitignoreCVS.gitignore(在我的硬盘上传播)。

我可以简单地将这些gitignore文件包含在新Git项目的.gitignore文件中吗?

编辑:我已经有了一个全局忽略文件 我只是想忽略不同类型项目中的不同文件,这可能吗?

3 个答案:

答案 0 :(得分:7)

你可以:

  • 拥有模板回购:
    • 其中的xxx.gitignore文件:
    • 其中包含“xxx-gitignore-xxx”的.gitignore文件(换句话说,内容可以轻松识别
    • a .gitattribute filter driver

(对于每个新的repo,你克隆它并且可以从已经存在的那些文件开始 然后你删除远程'origin'或者用你要推送到的任何远程仓库替换它)

enter image description here

在您的回购任何结帐时,过滤器驱动程序将通过涂抹脚本:

  • 识别.gitignore文件
  • 内容
  • 检查xxx.gitignore内容是否已经存在(通过查找仅包含这些文件的特定字符串)
  • 如果他们的内容不存在,则会附加那些xxx.gitignore个文件的内容
  • 如果内容已经是最新的,则不会修改.gitignore

请注意,拥有可识别内容是关键,因为filter driver script doesn't have the name/path of the file it filters

这有点令人费解,但似乎是实现所需“包含”功能的唯一方法。

答案 1 :(得分:6)

您将获得的关闭是全局忽略文件:

git config --global core.excludesfile ~/.gitignore

这当然就像在回购中有.gitignore,但适用于您系统上的所有回购(而不是传播到外部克隆。)

答案 2 :(得分:0)

我运行了一个项目,该项目承载着大量的gitignore模板,并且非常易于使用。

这不允许任何人包括子模板,但确实会从单个git模板生成一个大模板。