码迷,mamicode.com
首页 > 其他好文 > 详细

git 和 github 的原理和一个常用的工作流程

时间:2015-05-19 12:45:43      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

  先学习和整理git 和 github 的原理,再在下一篇介绍git 和github 的使用

  首先可以结合 gitbeijing 的内容来学习github的原理和使用


   作者:戴嘉华

  转载请注明出处,保留原文链接和作者信息:http://segmentfault.com/a/1190000002413519


前言

  (本文假设各位已经对基本git 的基本概念、操作有一定的了解俄,入伍相关git的知识,可以参考Pro Git这本书进行相关的学习和练习

  很多项目开发都会采用git 这一优秀的分布式管理工具进行项目版本管理,使用 github开源平台作为代码仓库托管平台。由于 git 的使用非常灵活,在实践当中衍生了很多不同的工作流程,不同的项目、不同的团队会有不一天的协作方式。

  本文将介绍一种前人已经在各种大小项目中经过千锤百炼总结出来的一种比较成功的git 工作流程,这种工作流已经被成功用于许多团队开发当中(当然这只是众多开发流程中比较流行的一个,并不是github强制要求的,需要了解github、git的真正的原理,请参看gitbeijing)。掌握 git,掌握这种工作流,对大家以后的学习、开发工作大有好处

  先上一张图吓大家一下

技术分享

   上面一张图展示了一种使用 git 进行写作开发的模式,接下来会经行详细的介绍

 

仓库(Repository)

  在项目的开始到结束,我们会有两种仓库。一种是源仓库(origin),一种是开发者仓库。上图中的每个矩形都代表一个仓库,正中间的是我们的源仓库,而其他围绕着源仓库的则是开发者仓库

源仓库

  在项目的开始,项目的发起者构建了一个项目的最原始的仓库,我们称它为 origin,例如我们的Pinghacker网站,origin就是这个PingHackers/blog了。源仓库有两个作用

1) 汇总参与该项目的各个开发者的代码

2) 存放趋于稳定和可发布的代码

  源仓库应该是受保护的,开发者不应该直接对其进行开发工作。只有项目的管理者(通常是项目的发起人)能对其进行较高权限的操作

开发者仓库

  上面说过,任何开发者都不能对源仓库进行直接的操作,原源仓库建立以后,每个开发者需要做的事情就是把源仓库的代码“复制”一份,作为自己日常开发的仓库。这个复制,也就是github 上阿敏的fork

  每个开发者所 fork 的仓库是完全独立的,互不干扰,甚至与原仓库都无关。每个开发者仓库相当于一个源仓库实体的影像,开发者在这个影像中进行编码,提交到自己的仓库中,这样就可以轻易地实现团队成员之间的并行开发工作。而开发工作完成以后,开发者可以向源仓库发送 pull requet,请求管理员把自己的代码合并到 origin(源仓库)中,这样就实现了,和最后的集中式的管理

 

分支(Branch)

  分支是 git 中非常重要的一个概念,也是git 这个工具的一个大杀器、必杀技。在其他集中式版本控制工具(SVN/CVS)vagaa.com分支定位为高级技巧,而在git 中,分支操作则是每个开发人员日常工作流。利用git 的分支,可以非常方便地进行开发和测试,如果使用git 没有让你感到轻松和愉悦,那就是因为你还没有学会使用分支。不把分支用出一点翔来,不要轻易跟别人说你用过git。

  在文章开头的那张图中,每个矩形(仓库)内部纷繁的枝蔓便是 git 的分支模型。可以看出,每个开发者的仓库都可以有自己的分支路线,而这些分支路线通过代码汇总映射到源仓库中去

  我们为 git定下一种分支模型,在这种模型中,分支有两类、五种:

  • 永久性分支
    1. master branch:主分支
    2. develop branch:开发分支
  • 临时性分支
    1. feature branch:功能分支
    2. release branch:预发布分支
    3. hotfix branch:bug修复分支

 

git 和 github 的原理和一个常用的工作流程

标签:

原文地址:http://www.cnblogs.com/xumenger/p/4513984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!