问题描述:

公司里项目管理使用的是gitLab(收费的), 如果开发人员提交代码,  需要首先创建一个分支, 然后把代码提交到你创建的分支上去(不允许把代码直接提交到主分支上). 在代码提交到已经创建的分支上后, 你要发送一个merger  request的请求 给合并代码的人员,  这个人有权限把你创建的分支合并到主分支上(你自己是没有权限的),  有他做最后代码审核. 如果这个人合并成功后, 自己就可以切换回到主分支, 去更新代码了.

现在出现一个很棘手的问题(其实还是git提交操作的流程):

目前主分支:  master

在msater上创建新分支newBranch,  在newBranch上更改代码, 没有提交(commit / push),  此时msater分支上有人更新了代码,  我需要在newBranch上去更新master代码, 其实就是更新创建分支的基线(master).

如下图:

  

把基线移更新到蓝色的线

我目前的操作:(目前的分支是newBranch)

git branch  (查看当前分支是否处于newBranch)

git add <file> (提交newBranch上的更改的文件)   

git commit -m "comment" (只提交到本地, 不做git push操作, 相当于提交到本地仓库)   

git checkout master

(这里是切换到msater分支, 如果不把newBranch上修改的文件提交到本地, 那么这个操作就会提示错误) (切换分支前, 必须保证当前的分支记录全部提交, 简单来说, 执行git status, 如果有显示未提交的修改文件, 那么切换分支就不会成功;这是我们就可以采取把修改的文件提交到本地,不去做git push操作, 然后切分支,做其他事情. 完成之后, 最后切换到之前的分支, 可以通过git reset HARD~1的命令还原.把本地提交的还原回来)   

git pull origin master(把master的分支新提交的代码更新下来)   

git checkout newBranch (切换到之前的newBranch分支)  

git reset HEAD~1 (这里是先reset, 然后merge)

(上面和下面这两个步骤操作意义是: 把之前提交到本地, 全部还原回来, 即同时更新了master代码, 也把基线移到指定的地方, 这样就相当于(上图)把基线移到蓝线, )

git merge --no-ff master (是否需要加参数--no-ff, 看需要)

(git merge –no-ff 可以保存你之前的分支历. 能够更好的查看merge历史, 以及branch状态)
(git merge 则不会显示 feature,只保留单条分支记录)

后续的修改提交文件, 和正常的git add / git commit -m "" / git push 等操作完全不影响

(详细的内容可以查看我的另一篇博客: http://www.cnblogs.com/xumBlog/p/8623736.html)

(git reset的命令学习: http://www.cnblogs.com/xumBlog/p/8555666.html)    

git版本分支和分支、分支和主分支切换的更多相关文章

  1. github上forck一个分支之后,如何和主分支同步

    github forck一个分之后,如果过一段时间就会和主分支的差异比较大. 这样提交pr的时候 就会冲突,这个时候我们就需要和主分支同步代码 git remote add upstream git@ ...

  2. github本地分支合并到线上主分支

    如果是在本地index-swiper分支上,已经写好了那么: 1,git add .             //提交到本地缓冲区 2,git commit -m "project init ...

  3. Gitlab应用——开发人员fetch分支,合并到master主分支申请

    创建开发仓库 打开git Bash,删除之前root管理创建的仓库目录 rm -rf  admin-test 选择项目进行拷贝 ​ 克隆 # git -c http.sslVerify=false c ...

  4. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  5. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  6. 关于git中自己的分支和主分支有冲突的解决方案(git和乌龟git)

    阐述一个案例,最近在开发中遇到一个问题.自己在代码的主分支拉了一个分支,开始快乐的开发修改了.同事小明也在主分支拉了一个分支,也在快乐的修改.小明的开发速度很快,一个问题很快就解决了,并且把自己的代码 ...

  7. git 将主分支的提交合并到分支上(主分支同步到分支)

    通常都会遇到将分支修改的内容合并到主分支中,但是在主分支中修改了内容怎么同步到分支上呢,这个时候需要将主分支上的提交操作在分支上再做一次: 1.首先在主分支上执行: git log 2.找到你想要同步 ...

  8. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  9. Git学习笔记(二)分支管理与合并及Bug分支

    一.分支管理 1.什么是分支 分支就相当于我们看科幻片里的平行宇宙,如果两个平行宇宙互不干扰,那铁定是啥事儿没有.不过,在某个时间点,两个平行宇宙合并了呢?假如两个宇宙中都有你的影子, 合并之后相当于 ...

  10. git 使用详解(10)-- 远程分支

    远程分支 远程分支(remote branch)是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在Git 进行网络交互时才会更新.远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支 ...

随机推荐

  1. 38、EST序列拼接流程

    转载:http://fhqdddddd.blog.163.com/blog/static/18699154201241014835362/ http://blog.sina.com.cn/s/blog ...

  2. windows下primer3-py安装

    primer3是由怀特黑德生物医学研究所Steve Rozen等人发起的一个自动寡核苷酸分析和设计的开源项目,被广泛应用在分子生物领域.primer3-py是用python语言封装的primer3的A ...

  3. linux下sed批量替换文件内容

    在linux超级终端下编辑文档是件比较麻烦的事情,下面简单介绍一下如何在linux下批量替换文件内容 linuxsed 批量替换多个文件中的字符串 格式: sed -i "s/查找字段/替换 ...

  4. JpetStore目录文件关系分析

    http://www.cnblogs.com/sunsonbaby/archive/2004/09/11/42245.html 从功能方向  至上向下分析 com.ibatis.jpetstore.s ...

  5. 解决Navicat 无法连接mysql8.0

    必须执行下面两个步骤,缺一不可. 一.        mysql8.0加密方式与mysql5几加密方式不同,需要先更改加密方式. 更改加密方式 ALTERUSER 'root'@'localhost' ...

  6. unity3d 刷新速率

    using UnityEngine; using UnityEngine.UI; public class Text : MonoBehaviour { public Text t; private ...

  7. C# 、.NET、ASP.NET MVC积累

    2016-10-27 给视图中的select赋值: 控制器: public ActionResult Add() { List<SelectListItem> ClassName = ne ...

  8. 项目:IT资源共享资源(登录前端)<1>

    公众号技术标签 小程序 PHP 源码 项目 IT资源共享项目 这是前年自己收集了一些网络开发资源,上传到百度网盘,提供积分兑换.上线后用户在两个月内达到3427人,其中用java,PHP,前端,Pyt ...

  9. python之02数据类型学习

    参考链接:http://www.cnblogs.com/yuanchenqi/articles/5782764.html python的数据类型有:Number.Boolean.String .Lis ...

  10. cf834D(dp+线段树区间最值,区间更新)

    题目链接: http://codeforces.com/contest/834/problem/D 题意: 每个数字代表一种颜色, 一个区间的美丽度为其中颜色的种数, 给出一个有 n 个元素的数组, ...