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

为什么有这样的需求?

在开发过程中,本来一直维护国内版本,国外因为接入的是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 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,973评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,969评论 0 11
  • 完节目,我真的要对泽哥进行一波疯狂的称赞(多图预警!!!) 确定心意后每天坚持护送大鹅去上班,微博发的超详细版也能...
    Freesias阅读 585评论 0 0
  • 如题 今天没有长篇大论 希望豆丁宝贝早日康复
    刘小小渔阅读 180评论 0 1
  • 天体物理学家在一台大型超级电脑上,模仿了整个宇宙的构成。这是迄今为止人类模仿出的最大的虚拟宇宙,获取的研讨数据将用...
    7487bdf8cef1阅读 391评论 0 0