4

一.分支管理

  1. 分支理解
    分支开发,笔者在这里说下对于分支的理解,比如现在一个项目工程中有两个功能点需要开发,由于开发时间有限,为了保证功能准时上线,功能开发就需要并行,这时候我们就用到了分支开发。总之分支开发能是为了提高开发效率的。


  2. 分支的创建
    笔者经历过svn创建分支和合并分支。那是一件相当痛苦的事情,一般RD极少有创建分支的权限,而且svn创建分支和分支切换也是比较麻烦的,当然现在有很多管理后台简化了创建分支的复杂度,学习了git分开创建和合并,你会发现分支开发如此简单。
    使用"git checkout -b <分支名>",创建新的分支并使用,如图:图片描述


  3. 分支的查看
    上图中“git branch”用于查看本地仓库的分支列表,有时我们可能仅仅想先创建一个分支而不是立刻就是用,后面在切换分支,此时图片描述git branch <分支名>”用来创建分支
    "git checkout <分支名>"切换分支
    git checkout” 是不是很眼熟好像在哪里见过(我们好像在哪见过,你记得嘛???),是在git本地相关操作(二)使用到的,在文件没有提交仓库之前,撤销本地文件的修改"git checkout -- <file>"
    我们继续对introduce.txt文件进行操作:
    (1).test分支的编辑提交到本地仓库图片描述
    (2).dev分支编辑提交
    图片描述


  4. 分支冲突解决
    如图,提示发生冲突
    图片描述图片描述
    上面的<<<<<<以上便是的两个分支共同的部分,=======表示当前分支修改的内容,>>>>>>>表示的合并过来的分支修改的内容,笔者解决的方式都保留这两个分支修改的内容,执行“git add”、"git commit "重新提交来解决冲突,如图:图片描述


  5. 分支的合并(不冲突)
    我们接着上步的操作,切换到master分支,然后将dev分支的内容合并到master上,使用“git merge 分支名图片描述"git merge 分支名”命令中的分支名是合并时候将该分支中的数据合并到当前分支上,数据的方向大家要搞清楚


  6. 分支的删除
    git branch -d <分支名>”,如图:图片描述


  7. 查看各分支路径
    通过“git log --graph --pretty=oneline”git会以图形方式显示各个分支路径图片描述


二.总结

  1. git命令总结
    git checkout -b <分支名>”创建分支并切换到新创建的分支上
    git branch”查看当前代码关联的本地仓库的分支
    git branch <分支名>”创建分支
    git checkout <分支名>”,切换到指定的分支上,注意与git checkout -- <file>区分
    git分支合并时冲突的解决方式,收修改文件中冲突部门的内容,然后执行“git add”、"git commit "重新提交来解决冲
    "git merge 分支名”合并的方向要搞清楚
    git branch -d <分支名>”分支的删除
    git log --graph --pretty=oneline”查看git各个分支及分支之间合并的操作及路径


  2. git内部管理分支梳理
    git把每次提交串成一条时间轴,这条时间轴就是git的一个分支,git默认的分支是master;HEAD是浮动的游标,作用是指向本地代码修改最新的版本(包括未提交的:处于编辑状态和staging状态),关系如图展示:图片描述上图展示的是,在执行完“git commit -m <desc>”的状态;如果在编辑完,提交前,如果没有执行"git add",HEAD指向的是工作区;如果执行了“git add”,HEAD执行的是stage区(暂存区)
    创建分支,切换分支,HEAD会发生变化只想当前使用的分支,如图:图片描述在多分支开发过程中,各分支的状态图片描述分支合并以后各分支的状态,以及HEAD游标的指向情况,图片描述注意:上图合并是将dev分支合并到主要执行的命令:
    git checkout master
    git merge dev
    中间有一次分之切换
    然后当合并分支时,当前分支实际上代码是有变化的,变化的部分就是从其他分支上合并过来的,然后当前分支就相当于发生一次提交,在实践上有一个节点,表示当前合并以后的代码状态。
    实际开发过程中,master分支要求是非常稳定的,用于版本发布的;平时我们会在dev分支上进行开发,当需要发布新版代码的时候,就需要将dev分支的代码合并到master分支上,同事之间可以再创建分支进行独自开发,经常合并到dev分支上即可。


浪一把
112 声望5 粉丝