关于branch XYZ is published (but not merged) and is now N commits behind错误的一点分析

本文分析了当Git分支XYZ已发布但未合并,并且落后于远端N个提交时遇到的问题。提出了三种解决方案:忽略、与远程rebase和创建新分支追踪远程Branch B。内容参考自老罗的博客,详细介绍了每个方案的步骤。
摘要由CSDN通过智能技术生成
文章部分资料参考自老罗的博客:http://blog.csdn.net/luoshengyang/article/details/18195205,在此感谢老罗无私分享

一 背景

       众所周知Android源码是由repo管理的一堆git仓库,我在参与Android Framework开发工作的时候经常sync code遇到如题目所描述的错误。作为repo和git双小白的我看到网上对此问题的答案大概分两种:1,不用理他,继续自己的工作就行;2,通过git命令将当前分支rebase到远端分支,git rebase origin/$branchName。我也不明白这两种解决方法是为啥,一直迷糊。直到看到老罗分享的repo源码解析,终于下决心搞明白这个错误的来龙去脉。

二 问题分析

        既然错误日志是由repo打印出来的当然去repo仓库源码中寻找线索(repo的安装方法不在此赘述)。最终搜索到本段log是由.repo/repo/project.py打印出来的
    upstream_gain = self._revlist(not_rev(HEAD), revid)
    pub = self.WasPublished(branch.name, all_refs)
    if pub:
      not_merged = self._revlist(not_rev(revid), pub)
      if not_merged:
        if upstream_gain:
          # The user has published this branch and some of those
          # commits are not yet merg
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值