【发布时间】:2011-10-23 17:23:52
【问题描述】:
我有一些文件,例如 vim.gitignore、SVN.gitignore 和 CVS.gitignore(散布在我的硬盘上)。
我可以简单地将这些 gitignore 文件包含在新 Git 项目的 .gitignore 文件中吗?
编辑:我已经有一个全局忽略文件。
我只想忽略不同类型项目中的不同文件,可以吗?
【问题讨论】:
我有一些文件,例如 vim.gitignore、SVN.gitignore 和 CVS.gitignore(散布在我的硬盘上)。
我可以简单地将这些 gitignore 文件包含在新 Git 项目的 .gitignore 文件中吗?
编辑:我已经有一个全局忽略文件。
我只想忽略不同类型项目中的不同文件,可以吗?
【问题讨论】:
你可以:
xxx.gitignore里面的文件:xxx-gitignore-xxx”的.gitignore文件(换句话说,带有一个内容您可以轻松识别.gitattribute filter driver
(对于每个新的 repo,您都可以克隆它并可以从已经存在的那些文件开始。
然后你删除远程'origin',或者用你想要推送到的任何远程仓库替换它)
(图片显示在“Customizing Git - Git Attributes”,来自“Pro Git book”)
在您的 repo 结帐时,过滤器驱动程序将通过 smudge 脚本:
.gitignore文件的内容
xxx.gitignore 内容是否已经存在(通过查找只有这些文件具有的特定字符串)xxx.gitignore 文件的内容.gitignore。请注意,这里有一个可识别的内容,因为filter driver script doesn't have the name/path of the file it filters。
这有点令人费解,但似乎是实现您想要的“包含”功能的唯一方法。
【讨论】:
我运行了一个托管最多 gitignore 模板的项目,它非常易于使用。
可以安装 gitignore via command line 输入
gi cvs,vim,svn
您还可以使用此 URL 更新现有模板: https://www.gitignore.io/?templates=cvs,vim,svn
最后,您可以贡献模板列表,合并 @github/gitignore 和 100 多个其他社区模板,以创建最大的模板存储库:https://github.com/dvcs/gitignore
这不允许任何人包含子模板,但它确实会从单个 git 模板生成一个大模板。
【讨论】:
您将获得的关闭是全局忽略文件:
git config --global core.excludesfile ~/.gitignore
这当然就像在 repo 中有一个 .gitignore,但适用于您系统上的所有 repo(并且不会传播到外部克隆。)
【讨论】: