任何版本的 Git 都会加载来自存储库上方目录或主目录的 .gitignore 文件吗?

任何版本的 Git 都会加载来自存储库上方目录或主目录的 .gitignore 文件吗?

任何版本的 Git 都会加载.gitignore来自存储库上级目录或主目录 () 的文件吗?~/.gitignore

~/.gitignore在一些咨询性网络帖子中提到了这一点,尽管它在我的系统上的 Git 版本中不起作用,并且我的系统手册不清楚 Git 会走多远来寻找.gitignore,尽管只提到$XDG_CONFIG_HOME/git/ignore作为主目录全局 gitignore 文件位置。

我的问题源于,为了管理我的主目录点文件,我目前选择使用带有自定义GIT_DIR环境变量设置的 Git,这样就可以在我的 .gitignore 文件的任何子目录中不让 Git 默认使用该存储库~

但是,由于是.gitignore硬编码的,无法通过环境变量进行选择(我希望是这样的"${GIT_DIR%/}ignore"),担心在我的某些系统上~/.gitignore最终可能会全局应用或在子目录中的存储库中应用~,我只能将下面的代码片段添加到我的存储库中${GIT_DIR}/info/exclude,然后将${GIT_DIR}/info/exclude文件暂存到存储库中,将所有要应用于我的点文件管理存储库的 gitignore 条目保留在那里(以及在.gitignore仅限点文件的子目录中的文件中)。我不喜欢它的原因是它很脏,有时可能会导致小问题。

上面提到的代码片段是.gd我的$GIT_DIR

/.gd/**
!/.gd/info/
!/.gd/info/exclude

答案1

全局忽略路径是可配置的(通过“core.excludesFile”选项),直到git版本 1.7.12 实际上没有$XDG_CONFIG_HOME/git/ignore默认值——该选项默认为空白。

因此很多人习惯手动配置 git 以将其加载~/.gitignore为全局忽略文件。很可能每个人都喜欢此路径,因为它靠近 ~/.gitconfig 文件(1.7.12 之前的全局设置都保存在此文件中)。

然而,这仅仅恰好使用相同的文件名,但除此之外与每个存储库.gitignore搜索完全无关,总是在工作树根处停止。

相关内容