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

2018-11-15  本文已影响0人  Asbefore如初_3142

为什么有这样的需求?

在开发过程中,本来一直维护国内版本,国外因为接入的是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
然后可以正常工作了

上一篇下一篇

猜你喜欢

热点阅读