【Git】pull 分支报错 fatal: Need to specify how to reconcile divergent branches...

2024-03-25 1172阅读

温馨提示:这篇文章已超过421天没有更新,请注意相关的内容是否还可用!

文章目录

    • 报错消息
    • 解决方法

      报错消息

      • 示例代码:
        ➜  git:(test) git pull origin test
         * branch              test       -> FETCH_HEAD
        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 (the default strategy)
        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:(test) git pull origin test
          提示:您有不同的分支,需要指定如何协调它们。
          提示:您可以通过在之前某个时间运行以下命令之一来做到这一点
          提示:你的下一招:
          提示:
          提示: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分支前,进行过merge合并更新分支操作,而其他人在你之前已经push过一个版本,导致版本不一致

          【Git】pull 分支报错 fatal: Need to specify how to reconcile divergent branches...
          (图片来源网络,侵删)

          第一种解决方法:比较简单

          • 执行git config pull.rebase false
          • 默认将pull下来的代码与现有改动的代码进行合并
          • 但是可能会造成代码冲突,需要处理下这个问题,代码冲突如果2个人都改了同一个文件,需要联系之前push的同学,看看这块代码怎么保存

            第二种解决方法:回退到合并之前的代码,在进行pull拉取最新代码

            注意:这种解决方法仅适用于2个分支之间的合并(git merge)操作,比如你是将dev开发分支合并到test分支之前没pull,那这时候test分支需要回退到未合并前的版本。

            test上合并上去的代码将会丢失,等你test分支能成功pull后,需要重新合并(merge)开发分支dev上的代码合并到test上。所以记得保留dev开发分支这个版本的代码再把test回退到上一个版本,等pull成功,再重新在test分支上合并dev分支代码

            • 查看最近3次提交的历史版本
              ➜  git:(test) git log -2			# 查看最近2次提交的历史版本
              commit 6018c237278f5265e78314049d6642e493ebdb0d
              Author: 流星
              Date:   Wed Jan 19 09:57:50 2022 +0800
                  合并之后
              commit 33df706e780d10af6435bda1fee85430604eebfd
              Merge: 1d06cd1f 7589979d
              Author: 流星
              Date:   Tue Jan 18 16:11:21 2022 +0800
                  合并之前
              
              • 根据历史版本记录,选择commit地址,回退到自己合并之前的版本
                ➜  git:(test) git reset --hard 33df706e780d10af6435bda1fee85430604eebfd
                
                • 再进行pull更新分支
                  ➜  git:(test) git pull origin test
                  
                  • 最后再重新合并代码
                    ➜  git:(test) git merge dev
                    

                    记得养成一个良好git发布流程的习惯

                    # 分支合并发布流程:
                    git add .			# 将所有新增、修改或删除的文件添加到暂存区
                    git commit -m "版本发布" # 将暂存区的文件发版
                    git status 			# 查看是否还有文件没有发布上去
                    git checkout test	# 切换到要合并的分支
                    git pull			# 在test 分支上拉取最新代码,避免冲突
                    git merge dev   	# 在test 分支上合并 dev 分支上的代码
                    git push			# 上传test分支代码
                    

                    更多git操作请查看博主的另一篇文章,关注我不迷路,我替你们把坑都踩平了:

                    https://blog.csdn.net/qq_45677671/article/details/114594940?spm=1001.2014.3001.5502

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]