美文网首页
Git 创建本地分支并同步远程某个分支到本地分支上

Git 创建本地分支并同步远程某个分支到本地分支上

作者: Asbefore如初_3142 | 来源:发表于2018-11-15 12:00 被阅读0次

    为什么有这样的需求?

    在开发过程中,本来一直维护国内版本,国外因为接入的是google等sdk,所以是另一个同事开辟了一个子分支并在上面做维护,两个分支并不需要进行合并等操作
    但是某一天,需要我切换到国外的分支临时进行操作。所以在同步仓库远程代码到本地的时候出现了错误。所以有了这次的记录。

    首先创建本地分支并切换

    //执行
    git branch google 
    git checkout google
    // 或者执行
    git checkout -b google
    

    这样创建了google分支并切换到了分支上

    查看仓库的所有分支

    git branch -a
    

    这时候会列出仓库中的所有分支

    关联本地分支到远程分支上

    假设仓库中有分支名为 remote/origin/google的分支

    使用命令

    git branch --set-upstream-to origin/google
    

    为什么需要关联远程分支?
    因为每次执行 git pull 命令时,都需要在后面加上 <remote> <branch> 两个参数,在关联后,就不需要后面两个额外参数了

    同步本地分支到最新

    这时候自然想到了使用 git pull ,但是使用命令后会发现出现了大量文件冲突,甚至可能有上百个,这时候显然是不正常的。为什么?
    下面看看当前分支示意图

    远程分支:


    远程分支

    本地分支


    本地分支

    远程分支的 child_1 _2 _3 假设都是别人提交的
    这时候 远程分支的 master_4 和 child_3 的差异实际上是非常大的。
    而本地创建的分支 child_1 是在master_4 的基础上创建的,它们的工作空间的代码都是一样的。所以 master_4 == child_1
    这时候如果我们执行 git pull 命令,实际是将远程分支的 child_3 和 master_4 进行合并。自然会出现大量冲突

    但是我不需要合并,而是直接切换到 child_3 就好了
    所以执行:

    git log --graph --decorate --oneline --simplify-by-decoration --all
    

    查看分支结构图

    分支图
    如果远程分支是 origin/google 则找到前面的分支号,然后执行
    git reset --hard *******
    

    这时候代码直接切换到了 child_3
    然后可以正常工作了

    相关文章

      网友评论

          本文标题:Git 创建本地分支并同步远程某个分支到本地分支上

          本文链接:https://www.haomeiwen.com/subject/hpnefqtx.html