Git(5)/分支管理

来源:互联网 发布:淘宝客服专用语言 编辑:程序博客网 时间:2024/06/15 09:52

Git之所以能够在众多版本控制系统中脱颖而出,第一个原因就是他独特的暂存区stage;第二个原因就是我们今天要讲的分支branch了。

  1. 什么是分支?
    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
    如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
    什么是分支

    • 实际用处
      假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致其他clone了该版本的人无法工作;如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。所以,现在处于提交或者不提交都不好的两难处境。

      要是提交没有开发好的代码之后不影响原来正常工作的代码就好了,等到功能开发完毕,再把这些新增的代码合并到原来正常工作的代码上,这样就完美了!git有这样的功能吗?

      答案当然是有了!git的分支就是专门为这种情况而设计的。

      一般来说,我们在开发的时候,git仓库有三条分支。

      • 第一条分支为master,用于存放当前程序的发行版本,也就是说,无论如何这个版本是能正常编译的,尽管可能有Bug,或者有些Feature没有实现。
      • 第二条分支为Bug分支,用于处理master分支中出现的Bug。比如:当我们发现master分支中的程序出现Bug时,我们就在Bug分支下进行修复工作,此时master分支还处于原来的状态。等我们在Bug分支上修复完毕之后,我们再将Bug分支合并到master分支上,此时master分支就堵上了原来的bug。
      • 第三条分支为Feature分支,基于master分支上的版本来开发新的功能。比如:我们现在要基于master分支上的某版本来开发一个特效。我们就在Feature分支上进行开发,等开发完毕,再merge到master分支上,之后,master分支上的新版本就有了我们在Feature上开发的功能了。
    • 与其他版本控制系统的不同,git创建切换和删除分支的速度很快。git的速度如果是火箭的话,SVN等版本控制系统的速度就相当于蜗牛。超级慢的速度直接导致了SVN等版本控制系统的分支功能成了“摆设”。

  2. 分支的基本操作

    • 增:git branch <branch_name>
    • 删:git branch -d <branch_name>
    • 改:git checkout <branch_name>
    • 查:git branch
      special function:
    • 增+改:git checkout -b <branch_name>
    • 合并:git merge <branch_name>
  3. git分支的工作原理

  4. 解决冲突

  5. 分支管理策略

  6. Bug分支

  7. Feature分支

  8. 多人协作

0 0
原创粉丝点击