git版本分支和分支、分支和主分支切换

问题描述:html

     公司里项目管理使用的是gitLab(收费的), 若是开发人员提交代码,  须要首先建立一个分支, 而后把代码提交到你建立的分支上去(不容许把代码直接提交到主分支上). 在代码提交到已经建立的分支上后, 你要发送一个merger  request的请求 给合并代码的人员,  这我的有权限把你建立的分支合并到主分支上(你本身是没有权限的),  有他作最后代码审核. 若是这我的合并成功后, 本身就能够切换回到主分支, 去更新代码了.   git

     如今出现一个很棘手的问题(其实仍是git提交操做的流程): 学习

        目前主分支:  masterspa

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

        以下图: htm

  

把基线移更新到蓝色的线blog

                  

我目前的操做:(目前的分支是newBranch)项目管理

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

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

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)     

相关文章
相关标签/搜索