git分支初学指南

git的分支是“日常用品”,软件的各种功能可在隔离的分支里开发。这是合理的,因为合并的过程有时会不受控制。如果你在默认主线上开发,而一个提交了的功能被推迟使用,你就要在完全不一样的功能上开发,而在此之前,你要还原你在主线上的修改。功能分支能让你隔离变化并使合并的过程简化,不过,一旦你开始使用功能分支,你就会发现命令行不再是无所谓的。想要正确地理解git并成功地使用它,就该首先掌握它的命令。

为什么要git

专利软件塑造了版本控制系统(VCS)来适应如下需求:

  1. 项目有严格的发布时间
  2. 团队是搭配好的的
  3. 有明确的主任务,没什么支线剧情
  4. 分支是为不同的发行版,或有风险的功能而准备的
  5. 集中的(源码)服务器是与世隔绝的

以上是集中式VCS的诞生背景。但集中式VCS (例如 Subversion)对于开源项目的如下特点,就不适合了:

  1. 发布时间不定
  2. 贡献者可能遍布全球
  3. 欢迎各种创意,不管它是彻底颠覆的,或是旷日持久的
  4. 分支是必须的,因为开发者们着眼于不同功能点,而非同一目标
  5. 代码全世界可见

git是软件工程理念的精粹。如果工具不适合你的个案,你就自创工具。git是分布式版本控制系统(DVCS),用于解决开源项目与传统VCS之间的阻抗失配。

UI像Tortoise SVN这样的subversion是令人满意的,我也很少用到他的命令行。基于主线的开发方式只需简单的版本控制,所以在图形化界面就能操作。

git有多种workflow styles可供选择。你也可以继续按使用基于主线的开发(这篇博文的代码例子就是这样管理的),但如果你想为开源项目做贡献,你就得熟悉一下“功能分支”。

为什么要功能分支

git的分支是“日常用品”,软件的各种功能可在隔离的分支里开发。这是合理的,因为合并的过程有时会不受控制。如果你在默认主线上开发,而一个提交了的功能被推迟使用,你就要在完全不一样的功能上开发,而在此之前,你要还原你在主线上的修改。功能分支能让你隔离变化并使合并的过程简化,不过,一旦你开始使用功能分支,你就会发现命令行不再是无所谓的。想要正确地理解git并成功地使用它,就该首先掌握它的命令。

一个功能分支的例子

我决定给Bitronix Transaction Manager 添加一个Metrics 支持,所以第一步就是添加一个metrics分支。

首先检查下目前有什么分支:

You may also like...