我想将非快进合并设置为已投入使用的存储库的默认设置。这意味着添加
[merge]
ff = false
到存储库的 .git/config 文件。因为那是元数据,所以当我像往常一样推送存储库时,我不能指望它会更新。
所以我一直在克隆裸仓库,进行更改,并尝试将结果推送回服务器。除了我无法对“git push”进行任何参数组合之外,实际上可以做我想做的事。
更新:看起来我试图描述的内容是不可能的(感谢#git 上的耐心人士);我只需要鼓励我的开发人员这样做。
我想将非快进合并设置为已投入使用的存储库的默认设置。这意味着添加
[merge]
ff = false
到存储库的 .git/config 文件。因为那是元数据,所以当我像往常一样推送存储库时,我不能指望它会更新。
所以我一直在克隆裸仓库,进行更改,并尝试将结果推送回服务器。除了我无法对“git push”进行任何参数组合之外,实际上可以做我想做的事。
更新:看起来我试图描述的内容是不可能的(感谢#git 上的耐心人士);我只需要鼓励我的开发人员这样做。
ssh 引入远程服务器并在裸 git 中做任何你喜欢的事情(小心!)
但是,是的,你应该使用钩子
也许您可以使用共享/跟踪文件的“包含”:
git clone ...
git config include.path '../.gitconfig'
$ cat .gitconfig
[merge]
ff = false
[local]
policy = true
$ git config -l | tail -3
include.path=../.gitconfig
merge.ff=false
local.policy=true
也许有一些钩子来执行策略(在结帐后和提交前检查 local.policy)。
我只是在编造这个,所以把它当作一个想法,而不是建议。这可能会在我不熟悉的情况下中断......
祝你好运