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 进行网络交互时才会更新.远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支 ...
随机推荐
- 13、ubuntu终端快捷键(参考 dy9776)
1.终端的快捷键 Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+l 相当于clear,即清屏 Ctrl+Z 把当前任务放到后台运行(相当于运行命令时后面 ...
- 【idea-部署web项目】
IntelliJ IDEA 14.x 与 Tomcat 集成,并运行Web项目 时间 2015-01-17 09:40:06 PHP博客 原文 http://blog.snsgou.com/pos ...
- .net动态代理-EMIT,AOP实现
动态代理实现原理: 通过动态基础目标类,重写目标虚方法,.net中实现手段-il Emit.Proxy项目源码,https://github.com/1448376744/Emit.Proxy 以下是 ...
- eros --- Windows Android真机调试
1.下载并安装JDK 2.下载并安装Android Studio 上面两项不管用weex还是eros都是前置条件,度娘有大量教程. 开始eros 手脚架安装: $ npm i -g eros-cli ...
- ansible编译安装--操作系统环境Redhat6.4
安装前安装包准备,下载链接如下: Python2.7下载地址:https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz ansible下载地 ...
- 如何阻止<a>标签的页面跳转
当页面中a标签不需要执行任何页面跳转行为时: 1.标签属性href,使其指向空或不返回任何内容 <a href="javascript:void(0);" >页面不跳转 ...
- CTS/APIO后文化课游记
根据ghj1222的尿性,干什么事都要写一个游记划水记啥的...然后就写嘛... 现在是5.30微机课,先开个坑,学校6.5放假,我将于6.5后开始更新本文 APIO回来后发生的事真的特别多...有的 ...
- tput 命令行使用说明
转载自:https://blog.csdn.net/fdipzone/article/details/9993961 什么是 tput?tput 命令将通过 terminfo 数据库对您的终端会话进行 ...
- 阿里云服务器 linux 怎么安装php(PHPSTUDY)开发环境
1.首先登录行云管家(https://yun.cloudbility.com/login.html) wget -c http://lamp.phpstudy.NET/phpstudy.bin //下 ...
- POJ3974 Palindrome Manacher 最长回文子串模板
这道题可以$O(nlogn)$,当然也可以$O(n)$做啦$qwq$ $O(nlogn)$的思路是枚举每个回文中心,通过哈希预处理出前缀和后缀哈希值备用,然后二分回文串的长度,具体的就是判断在长度范围 ...