全局设置git的core.precomposeunicode = true是否安全?

时间:2013-03-05 18:41:15

标签: git

我们在混合环境(OSX,Linux,Windows)中设置git 1.8,并且文件名使用非英文字符。我已经读到需要在OSX系统上将core.precomposeunicode设置为true

我们不关心向后兼容性。我们 关注为开发人员保持简单。我们宁愿不必解释git配置。

那么:全局设置该标志(在中央git服务器中)是否安全?这会强制我们需要的一致性吗?有理由不去吗?

1 个答案:

答案 0 :(得分:3)

不,那不行。 分布式版本控制系统中没有中央git服务器 - 至少在技术意义上是这样。

每个开发人员都有自己的存储库,可以检查他的更改。当这些更改被推送到存储库时,您声明作为中心,数据不会被重新处理。

您必须在每个本地存储库上设置该配置 不幸的是,除了.gitattributes之外别无选择。

开发人员随后将克隆某个存储库的本地选项也不是一种选择。以下简单实验表明了这一点:

d:\Temp\Origin>git init
Initialized empty Git repository in d:/Temp/Origin/.git/

d:\Temp\Origin>git config --local --add core.autocrlf input
d:\Temp\Origin>git config --local --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
core.autocrlf=input
d:\Temp\Origin>cd ..
d:\Temp>git clone d:\Temp\Origin Developer
Cloning into 'Developer'...
warning: You appear to have cloned an empty repository.
done.

d:\Temp>cd Developer

d:\Temp\Developer>git config --local --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.url=d:\Temp\Origin
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

请注意,git config --local --list列出Origin core.autocrlf=inputDeveloper中相同命令的调用不会,但我们只是从Developer克隆Origin {1}}。
这表明存储库本地配置值克隆。

相关问题