.gitignore_global无效,甚至.gitconfig显示.gitignore_global

Hem*_*har 18 git

我创建了.gitignore_global文件并将其保存到我有.gitconfig文件的目录中.

之后,我使用了这个命令.

git config --global core.excludefile .gitignore_global
Run Code Online (Sandbox Code Playgroud)

然后我使用命令检查了我的.gitconfig文件

cat .gitconfig
Run Code Online (Sandbox Code Playgroud)

它显示了我的结果

[user]
        email = hemant.parihar264@gmail.com
        name = Hemant Parihar
[gui]
        recentrepo = C:/Users/heman/gitprojects
        recentrepo = E:/Inspiration/developerquery
[filter "lfs"]
        clean = git-lfs clean %f
        smudge = git-lfs smudge %f
        required = true
[core]
        excludesfile = .gitignore_global
Run Code Online (Sandbox Code Playgroud)

它清楚地显示了我在[核心]部分,有.gitignore file.但是在我的项目存储库中,我创建了一个文件,在配置.gitignore_global时应该忽略该文件.但这不应该发生.但是当我使用本地.gitignore文件到我的项目时,它工作正常并忽略了不应该跟踪的文件.

我的项目存储库目录是E:/ Inspiration/server/explore_california,.gitignore_global在我的主目录中(其中存在.gitconfig文件.).

我检查了这个链接,但我没有找到任何有用的东西.

pok*_*oke 33

全局gitignore的路径必须是绝对的,因此您可以在此处使用shell扩展,并将其指定为~/.gitignore_global:

git config --global core.excludesfile ~/.gitignore_global
Run Code Online (Sandbox Code Playgroud)

为了理解如果你不使用绝对路径会发生什么,你必须了解git configs是如何工作的:每个存储库都有一个.git/config.此外,还有全球性的~/.gitconfig.合并两个位置的配置值(在发生冲突时优先使用本地存储库设置)以生成一组配置设置.您可以通过git config -l在本地存储库中运行来检查它们.

因此,配置始终是当前存储库的本地配置.因此,当您拥有"全局"排除文件的相对路径时,该路径将相对于您的存储库进行解释.

因此excludesfile = .gitignore_global,Git会查看本地存储库中的文件gitignore_global.它会使用它以及普通.gitignore和存储库.git/info/exclude.

所以你实际上可以将.gitignore_global文件放入每个存储库,Git会把它拿起来.

因此,既然您需要全局配置,则需要指定绝对路径.