博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git版本分支和分支、分支和主分支切换
阅读量:4582 次
发布时间:2019-06-09

本文共 1344 字,大约阅读时间需要 4 分钟。

问题描述:

     公司里项目管理使用的是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 等操作完全不影响

(详细的内容可以查看我的另一篇博客: )

(git reset的命令学习: )     

    

转载于:https://www.cnblogs.com/xumBlog/p/8534912.html

你可能感兴趣的文章
6.新增事件
查看>>
|洛谷|二分|P1182 数列分段Section II
查看>>
少儿编程Scratch第四讲:射击游戏的制作,克隆的奥秘
查看>>
Oracle学习第七课-表连接及其应用
查看>>
Python基础篇【第十三篇】:面向对象
查看>>
bzoj 2465 小球
查看>>
Study Plan - The Thirty-Fifth Day
查看>>
图的深度优先遍历和广度优先遍历理解
查看>>
multi_index_container性能测试
查看>>
【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
查看>>
AngularJs学习笔记--IE Compatibility 兼容老版本IE
查看>>
sql server还原数据库文件(.bak)常见问题解决办法笔记
查看>>
列表,元组,字典的常规操作及内置方法
查看>>
LayoutInflater介绍及例子
查看>>
python中星号变量的几种特殊用法
查看>>
centreon 画图x轴乱码
查看>>
初学AFNetWorking笔记
查看>>
团队项目开发总结
查看>>
架构师养成记--13.代码层面用信号量做限流(转)
查看>>
在Activity之间传递参数(一)
查看>>