网络寻租

Programmer, Gamer, Hacker

Git学习总结

| Comments

image

虽然我的主力版本控制系统是hg, 但是既然在开源社区里面混, git是绕不掉的. 平时接触到git的项目, 为了能够正常使用不出篓子, 还是要系统地学习一下git. 这里推荐 git官方教程. 基础如何使用就不多说了, 网上漫天都是, 这里面整理一下使用CVS的一些经验, 绝大多数是从 其他人 那里抄过来的. 抄是学习的一大利器, 只要会抄, 什么事情都好办, 全世界那么多顶级的开源项目, 抄会一个, 吃穿不愁了—-有点离题了.

首先, CVS不是备份工具, 如果你一股脑地把所有修改过的文件commit上去, 那么还不如去用 dropbox. 我们要让版本库里面呈现的东西, 恰如其分地反应出开发流程, 方便流程控制, 阅读和处理. 那么CVS的使用, 应该符合专业的软件开发流程:

  • 每次提交代码, 应该是完成一项特定的工作, 提交的内容, 提交者应该能够回溯跟踪.
  • 代码分为开发版本, 以及发布版本.
  • 对于重要的阶段, 需要记录下来, 比如不同的发布版本号对应阶段的代码.

那么我们在使用的时候应该如何做呢? 根据 gitworkflows:

拆分变更

每次我们修改代码, 可能同时根据无数的需求改了非常多的地方, 我们在提交的时候, 需要尽量按照逻辑拆分出来, 分别commit它们. 这样出来的历史才有足够的可读性. 没有可读性我们还记录它们干什么?

分支管理

我们需要有至少2个分支: 开发分支和发布分支, 平时在开发分支干活, 需要发布的时候, 提交到发布分支上面去, 并且根据版本加tag. 注意, 提交到发布分支上面的代码是通过流程保证稳定性的.

关于上面的流程管控, 有个神器可以使用: git flow, 这里面的教程看一遍就能够体会到威力了.

Comments