在存储库中添加 .gitconfig 会覆盖我的全局 .gitconfig 文件配置吗?

Posted

技术标签:

【中文标题】在存储库中添加 .gitconfig 会覆盖我的全局 .gitconfig 文件配置吗?【英文标题】:will adding .gitconfig in repository override my global .gitconfig file configurations? 【发布时间】:2016-06-07 13:46:51 【问题描述】:

我将我的项目托管在 TFS-GIT 服务器中。我在 TFS 上遇到拉取请求合并问题。一种选择是更新 TFS 服务器本身上的 git 配置以“合并 --no--ff”,因为时间紧迫和其他无法尽快完成的问题。我正在寻找解决此问题的方法

如果我将 .gitconfig 文件添加到存储库并合并 .ff 和 pull.ff 为 false 是否会覆盖在存储库级别应用的配置? git 会这样工作吗?

非常感谢任何帮助

【问题讨论】:

【参考方案1】:

是的,签入特定存储库的.gitconfig 中的设置将覆盖您的全局.gitconfig 设置。

见this link:

一个 .gitconfig 文件最多可以驻留在您的 文件系统,确定文件所在范围的位置 内容被考虑:

全局(~/.gitconfig):最常用的,建立全局 特定用户的配置选项。 系统(/etc/.gitconfig): 很少使用,为整个系统建立配置选项 本地系统(此计算机上的所有用户)。 本地:在存储库级别, 建立仅影响此存储库的配置选项。如果 此文件已提交,其中包含的设置将影响 克隆此存储库的所有用户。

同样来自git-scm.com(为清晰起见进行了编辑):

文件按顺序读取,使用(存储库 发现特定的.gitconfig)优先于(其他.gitconfig 文件)。

【讨论】:

我尝试将它添加到我在 TFS 中的存储库中,当我在这个 repo 上执行拉取请求合并时,它仍然在执行 git merge 而不是 git merge --no--ff 。这就是我此时面临的主要问题,因为我无法更改服务器上的 TFS-GIT 默认 .gitconfigs 设置,我正在寻找这个选项提交 .gitconfig 并在 repo 中使用 merge --no ff 作为解决方法。我对 .gitconfigs 文件做错了吗? 这是在 .gitconfig 文件中检查的内容,看起来像 [merge] ff = false [pull] ff = false

以上是关于在存储库中添加 .gitconfig 会覆盖我的全局 .gitconfig 文件配置吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何从Git存储库中删除不想要的信息

如果我卸载 SVN,我的文件会怎样?

将用户数据添加到本地存储只能工作一次,之后添加的对象会被简单地覆盖? (角度 10+)

如何使用Maven构建将常规文件夹添加到我的存储库中?

我的全栈之路-Java基础之数据存储

如何将具有特定扩展名的文件添加到化石存储库中?