git版本分支和分支、分支和主分支切换
问题描述:
公司里项目管理使用的是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版本分支和分支、分支和主分支切换的更多相关文章
- github上forck一个分支之后,如何和主分支同步
github forck一个分之后,如果过一段时间就会和主分支的差异比较大. 这样提交pr的时候 就会冲突,这个时候我们就需要和主分支同步代码 git remote add upstream git@ ...
- github本地分支合并到线上主分支
如果是在本地index-swiper分支上,已经写好了那么: 1,git add . //提交到本地缓冲区 2,git commit -m "project init ...
- Gitlab应用——开发人员fetch分支,合并到master主分支申请
创建开发仓库 打开git Bash,删除之前root管理创建的仓库目录 rm -rf admin-test 选择项目进行拷贝 克隆 # git -c http.sslVerify=false c ...
- GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...
- 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流
GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...
- 关于git中自己的分支和主分支有冲突的解决方案(git和乌龟git)
阐述一个案例,最近在开发中遇到一个问题.自己在代码的主分支拉了一个分支,开始快乐的开发修改了.同事小明也在主分支拉了一个分支,也在快乐的修改.小明的开发速度很快,一个问题很快就解决了,并且把自己的代码 ...
- git 将主分支的提交合并到分支上(主分支同步到分支)
通常都会遇到将分支修改的内容合并到主分支中,但是在主分支中修改了内容怎么同步到分支上呢,这个时候需要将主分支上的提交操作在分支上再做一次: 1.首先在主分支上执行: git log 2.找到你想要同步 ...
- 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- Git学习笔记(二)分支管理与合并及Bug分支
一.分支管理 1.什么是分支 分支就相当于我们看科幻片里的平行宇宙,如果两个平行宇宙互不干扰,那铁定是啥事儿没有.不过,在某个时间点,两个平行宇宙合并了呢?假如两个宇宙中都有你的影子, 合并之后相当于 ...
- git 使用详解(10)-- 远程分支
远程分支 远程分支(remote branch)是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在Git 进行网络交互时才会更新.远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支 ...
随机推荐
- HDU 5974 A Simple Math Problem (解方程)
题意:给定a和b,求一组满足x+y=a && lcm(x, y)=b. 析:x+y = a, lcm(x, y) = b,=>x + y = a, x * y = b * k,其 ...
- Cygwin install apt-cyg
1. UPDATE CYGWIN First of all you will need to ensure that Cygwin has the necessary binaries require ...
- EasyUI+MVC4实现后台管理系统一:登陆和进入后台界面
首先实现登陆: 未完待续...
- luogu4168蒲公英(区间众数)
luogu4168蒲公英(区间众数) 给定n个数,m个区间询问,问每个询问中的众数是什么. 题面很漂亮,大家可以去看一下. 对于区间众数,由于区间的答案不能由子区间简单的找出来,所以似乎不能用树形结构 ...
- Python制作NTF传递函数工况文件和后处理文件
摘要:在平时工作中,TB车身的传递函数分析,涉及到大量重复行的工作,费时费力.在学习python基础后,希望通过代码解决这部分重复工作.基础入门级操作,但是能够解决很大一部分工作内容.日后,待pyth ...
- 前端实现Tab切换栏
tab切换,所需的 UI 只有两组元素 - Header 和 Tab,下面介绍几种不同的实现方法和他们的优缺点 本文主要说一些 CSS 的实现方法.最好的方法是 第四种 => label + i ...
- 利用Python的smtplib和email发送邮件
原理 网上已经有了很多的教程讲解相关的发送邮件的原理,在这里还是推荐一下廖雪峰老师的Python教程,讲解通俗易懂.简要来说,SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本 ...
- linux下rename命令使用(可以实现文件批量重名)
rename命令使用 把所有文件中的@符号去掉 wang@2a.pngzhang@2a.pngzhou@2a.pnghaha@2a.pngmama@2a.png CentOS:rename \@2a. ...
- Windows安装IIS后,启动网站报错:不能在此路径中使用此配置节……
在IIS里启动设置好的网站(ASP.net网站),浏览器报如下错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault= ...
- P2308 添加括号(区间DP)
题目背景 给定一个正整数序列a(1),a(2),...,a(n),(1<=n<=20) 不改变序列中每个元素在序列中的位置,把它们相加,并用括号记每次加法所得的和,称为中间和. 例如: 给 ...