gitignore全局配置到底做什么?



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

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

是否有一种方法可以设置一个动态配置,其中文本文件将与当前的更改更新?

core.excludesfile的工作方式类似于.gitignore文件,但它具有不同的目的。.gitignore文件是特定于项目的,它被设计成包含项目想要忽略的各种东西,通常是因为它们是构建产品。例如,用C编写的项目可能想要忽略构建的二进制或共享库,以及任何匹配*.o*.obj的文件。这些是你项目的每个用户都想忽略的东西。

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

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

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

注意,在您的例子中,您需要将模式写成~/.gitignore。Git不扩展配置文件中的环境变量,但通常~(代表主目录)会匹配USERPROFILE环境变量的值。

最新更新