git:报错: Diverging branches can't be fast-forwarded
一,报错信息:
hint: Diverging branches can't be fast-forwarded, you need to either:
hint:
hint: git merge --no-ff
hint:
hint: or:
hint:
hint: git rebase
hint:
hint: Disable this message with "git config advice.diverging false"
fatal: Not possible to fast-forward, aborting.
或
git:(develop) git pull origin develop
提示:您有不同的分支,需要指定如何协调它们。
提示:您可以通过在之前某个时间运行以下命令之一来做到这一点
提示:你的下一次获取:
提示:
提示:git config pull.rebase false # 合并(默认策略)
提示:git config pull.rebase true # Rebase
提示:git config pull.ff only # 仅快进
提示:
提示:可以将“git config”替换为“git config——global”来设置默认值
提示:首选所有存储库。你也可以传递——rebase,——no-rebase,
提示:或命令行上的——ff-only,以覆盖配置的默认per
提示:调用。
fatal:需要指定如何协调不同的分支。
二,原因:
pull代码时git不能处理,所以会提示报错:
查看git的默认配置:
$ git config --list
user.email=wbsrv@gs.com
user.name=websrv
pull.ff=only
pull.rebase=false
merge.ff=only
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=ssh://git@1.2.3.4:22/projectname
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.devel.remote=origin
branch.devel.merge=refs/heads/devel
pull.rebase=false
pull.ff=only
说明:
pull.rebase=false
pull.ff=only
这两项重复出现,是因为一个是global,另一个不是global
三,解决:
主要是取消原来设置的仅限于ff才pull和merge
$ git config pull.ff false
$ git config --global pull.ff false
查看修改后的配置:
$ git config --list
user.email=wbsrv@gs.com
user.name=websrv
pull.ff=false
pull.rebase=false
merge.ff=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=ssh://git@1.2.3.4:22/gsapi
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.devel.remote=origin
branch.devel.merge=refs/heads/devel
pull.rebase=false
pull.ff=false