gitignore 全局配置到底做了啥?

Posted

技术标签:

【中文标题】gitignore 全局配置到底做了啥?【英文标题】:What does a gitignore global config do exactly?gitignore 全局配置到底做了什么? 【发布时间】:2021-12-10 01:09:15 【问题描述】:

我一直在网上阅读,但还是有点困惑。在为我的本地设置运行以下配置后。将来我是否需要再次为任何项目创建 gitignore?

git config --global core.excludesfile %USERPROFILE%\.gitignore

有没有办法设置动态配置,文本文件将根据当前更改进行更新?

【问题讨论】:

【参考方案1】:

core.excludesfile.gitignore 文件类似,但用途不同。 .gitignore 文件是特定于项目的,它旨在包含项目想要忽略的各种内容,通常是因为它们是构建产品。例如,用 C 编写的项目可能希望忽略构建的二进制或共享库,以及任何匹配 *.o*.obj 的文件。这些是您项目的每个用户都希望忽略的事情。

core.excludesfile 专为您个人希望忽略的模式而设计。例如,如果您使用 Vim,您可能希望忽略交换文件,以免意外签入它们。由于人们使用许多不同的编辑器,因此忽略每个不同类型的编辑器文件是没有意义的每个项目,所以这是一个忽略编辑器备份文件、标签文件和类似内容的机会。

还有第三组配置,位于.git/info/exclude。因为它在.git 目录中,所以它是特定于项目的,但它不是共享的。它适用于您需要为本地系统修改项目的包含模式的情况,但方式与其他系统无关。例如,我有一个项目,其中有一个 dotfile 来帮助我的编辑器找到项目的真正根目录,而这个文件是特定于我的配置的。

因此,要回答您的问题,如果您的项目有构建产品或其他特定于项目的数据要忽略,您仍然应该为您的项目编写 .gitignore 文件。无法动态或自动配置模式,但通常不需要这样做。

请注意,在您的情况下,您需要将模式写为~/.gitignore。 Git不会在config文件中扩展环境变量,但是通常~,代表主目录,会匹配USERPROFILE环境变量的值。

【讨论】:

非常感谢!那是非常有深度的,正是我需要听到的。祝你有个愉快的夜晚!

以上是关于gitignore 全局配置到底做了啥?的主要内容,如果未能解决你的问题,请参考以下文章

一劳永逸,.gitignore 全局配置

Git 的 .gitignore 配置

git怎么把忽略文件变成普通文件

nVIDIA CUDA 驱动程序究竟做了啥?

git:配置要忽略的文件和目录

git基础教程(47)设置全局.gitignore