git-合并不遵守合并选项

git-merge is not respecting mergeoptions

我正在尝试将本地 git 配置为在合并到 develop 分支时始终使用 --squash。正如许多建议所建议的那样,我尝试了 git config branch.develop.mergeoptions "–-squash" 但似乎没有效果:

> git checkout -b test_branch
> touch 1 2
> git add 1
> git commit -m "Added 1"
> git add 2
> git commit -m "Added 2"
> git checkout develop
> git merge test_branch
Updating e258d21..90a41ec
Fast-forward
 1 | 0
 2 | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 1
 create mode 100644 2

我的期望是 git merge test_branch 的结果与 git merge --squash test_branch 的结果完全相同。但这显然不是真的:merge 从 test branch 中拉入两个提交,而不试图压缩它们。

我错过了什么?

本地配置的转储如下所示

$ git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@yyy.com:repo/repo.git
gitflow.branch.master=master
gitflow.branch.develop=develop
gitflow.prefix.feature=feature/
gitflow.prefix.release=release/
gitflow.prefix.hotfix=hotfix/
gitflow.prefix.support=support/
gitflow.prefix.versiontag=
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.develop.remote=origin
branch.develop.merge=refs/heads/develop
branch.develop.rebase=true
branch.develop.mergeoptions=--ff-only –-squash
user.name=User Name
user.email=xxx@yyy.com
log.mailmap=true
push.default=simple

您可能在 git 配置中传递选项时输入错误。试试这个:git config branch.develop.mergeoptions "--squash" 有帮助吗?