gitignore 全局配置到底做了什么?
What does a gitignore global config do exactly?
一直在网上看,还是有点迷糊。在 运行 以下配置用于我的本地设置之后。以后我是否需要再次为任何项目创建 gitignore?
git config --global core.excludesfile %USERPROFILE%\.gitignore
有没有办法设置一个动态配置,其中文本文件会随着当前更改而更新?
core.excludesfile
的工作方式类似于 .gitignore
文件,但它有不同的用途。 .gitignore
文件是特定于项目的,它旨在包含项目想要忽略的各种内容,通常是因为它们是构建产品。例如,用 C 编写的项目可能希望忽略构建的二进制文件或共享库,以及任何匹配 *.o
或 *.obj
的文件。这些是您项目的每个用户都希望忽略的事情。
core.excludesfile
专为您个人希望忽略的模式而设计。例如,如果您使用 Vim,您可能希望忽略交换文件,以免意外签入它们。由于人们使用许多不同的编辑器,因此忽略每种不同的类型没有意义每个项目中的编辑器文件,所以这是一个忽略编辑器备份文件、标签文件和类似内容的机会。
还有第三组配置,在.git/info/exclude
中。由于它在 .git
目录中,因此它是特定于项目的,但不共享。它适用于您需要为本地系统修改项目的包含模式,但方式与其他系统无关的情况。例如,我有一个项目,其中有一个点文件来帮助我的编辑器找到项目的真正根,这个文件是特定于我的配置的。
因此,为了回答您的问题,您仍然应该为您的项目编写 .gitignore
文件,如果它们具有要忽略的构建产品或其他特定于项目的数据。无法动态或自动配置模式,但通常不需要这样做。
请注意,在您的情况下,您需要将模式写为 ~/.gitignore
。 Git不会在config文件中展开环境变量,但通常~
代表home目录,会匹配USERPROFILE
环境变量的值。
一直在网上看,还是有点迷糊。在 运行 以下配置用于我的本地设置之后。以后我是否需要再次为任何项目创建 gitignore?
git config --global core.excludesfile %USERPROFILE%\.gitignore
有没有办法设置一个动态配置,其中文本文件会随着当前更改而更新?
core.excludesfile
的工作方式类似于 .gitignore
文件,但它有不同的用途。 .gitignore
文件是特定于项目的,它旨在包含项目想要忽略的各种内容,通常是因为它们是构建产品。例如,用 C 编写的项目可能希望忽略构建的二进制文件或共享库,以及任何匹配 *.o
或 *.obj
的文件。这些是您项目的每个用户都希望忽略的事情。
core.excludesfile
专为您个人希望忽略的模式而设计。例如,如果您使用 Vim,您可能希望忽略交换文件,以免意外签入它们。由于人们使用许多不同的编辑器,因此忽略每种不同的类型没有意义每个项目中的编辑器文件,所以这是一个忽略编辑器备份文件、标签文件和类似内容的机会。
还有第三组配置,在.git/info/exclude
中。由于它在 .git
目录中,因此它是特定于项目的,但不共享。它适用于您需要为本地系统修改项目的包含模式,但方式与其他系统无关的情况。例如,我有一个项目,其中有一个点文件来帮助我的编辑器找到项目的真正根,这个文件是特定于我的配置的。
因此,为了回答您的问题,您仍然应该为您的项目编写 .gitignore
文件,如果它们具有要忽略的构建产品或其他特定于项目的数据。无法动态或自动配置模式,但通常不需要这样做。
请注意,在您的情况下,您需要将模式写为 ~/.gitignore
。 Git不会在config文件中展开环境变量,但通常~
代表home目录,会匹配USERPROFILE
环境变量的值。