克隆时本地覆盖 Git 全局 core.fileMode false 设置

16

阅读这篇文章后,我成功地将fileMode配置在全局和本地都设为了false

然而,当我进行git clone操作时,Git会强制使用本地配置中的fileMode true来初始化项目,从而覆盖了我的全局配置false。因此,对于每个项目,我都必须手动删除本地配置或将其设置为false,这完全失去了拥有全局配置的意义。

我该如何防止Git默认在每个项目上设置此本地配置?这是否由另一个配置变量或服务器驱动?

2个回答

12

克隆(Clone)和初始化(init)一样,在创建新仓库时总是会设置本地的core.filemode。详情请参见我在这个问题的回答。在克隆后覆盖本地设置的唯一方法是手动执行(例如,使用包装命令进行克隆,然后进入克隆并删除该设置)。或者,如tst的回答Steve Benner的评论所述,将-c core.filemode=false添加到你的git clone命令中(确保在动词clone之后放置-c选项)。


1
嗨 =)谢谢你的回答。 "Clone, like init, always sets a local core.filemode when it creates a new repository". 那么真的没有任何方法可以配置它设置的fileMode吗?=/ - Cyril CHAPON
1
@CyrilCHAPON:有一个构建时的选项(详见其他答案),所以你可以调整你的构建。该选项使这个过程比仅修改源代码要容易一些,但并不是非常容易。 :-) - torek
明白了,谢谢。虽然设计有些遗憾,但你回答了我的问题。 - Cyril CHAPON
1
我也感到难过和困惑,不知道为什么 git init 会覆盖全局设置... "包装命令" 的一个例子可以是 Bash 函数,如 ginit() { git init --config core.filemode=false; } 或者 shell 别名,例如 alias ginit="git init --config core.filemode=false"(我不建议用别名来覆盖原始命令本身)。 - Steve Benner
2
@SteveBenner:为什么核心开发人员打算(而且很可能仍然打算)使core.fileMode反映文件系统本身的属性,而不是用户选择的设置。我并不确定是否完全同意核心开发人员的观点,但那就是他们这么做的原因 - torek

11
git clone --config core.filemode=false YOUR_REPOSITORY

如需更多信息,请参考git clone的使用信息,或直接输入:

git clone

没有任何参数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接