拉取或推送时报错如下:
git pull --tags origin master
branch master -> FETCH_HEAD
ac03df346… 73ce6daae master -> origin/master
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull. rebase false # merge
hint: git config pull. rebase true # rebase
hint: git config pull. ff only # fast-forward only
hint:
hint: You can replace “git config” with “git config --global” to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
解决办法:
这个错误信息的意思是 Git 在运行 git pull --tags origin master
命令时发现本地分支和远程分支存在分叉(divergent branches),也就是它们的提交历史不同步,因此需要指定一种方式来解决这个分叉。
常见的处理分叉的方式包括合并(merge)和重建基础(rebase)。但是,由于 Git 不知道你希望使用哪种方法来处理这个分叉,因此会提示你需要指定一种方式来解决这个问题。
-
如果你想使用合并的方式来处理这个分叉,可以在命令行中执行
git config pull.rebase false
,命令中的 false 意味着 git pull 命令将使用合并(merge)方式。 -
如果你想使用重建基础的方式来处理这个分叉,可以在命令行中执行
git config pull.rebase true
,命令中的 true 意味着 git pull 命令将使用重建基础(rebase)方式。 -
还可以在命令行上直接指定 --rebase 或 --no-rebase 以及 --ff-only 参数,以覆盖已经配置的默认设置。
需要注意的是,在处理分叉时,一定要小心操作,并先备份代码库,以避免数据丢失。