版本管理工具 trunk VS branch VS tag

SVN Apache Subversion

SVN 仓库目录结构 Repository:
+-trunk
+-branches
+-tags

truck(主线):是用来做主方向开发的,新功能的开发应放在主线中,当模块开发完成后,需要修改,就用 branch

branch(分支):分支开发和主线开发是可以同时进行的,也就是并行开发,分支通常用于修复 bug 时使用。

tag(标记):用于标记某个可用的版本,可以标记已经上线发布的版本,也可以标记正在测试的版本,通常是只读的

仓库目录结构 Repository

假设要开发一个新项目 MyApp,开发周期如下:

  1. 在主线 trunk 上开发,测试通过,上线
  • 新建目录 1.0,提交到 SVN,并标记为 tag。位置为 /tags/1.0/MyApp(即 1.0 版本)

  • 继续在主线 trunk 上开发下一阶段的新需求,开发中...

  • 突然发现了一个线上的 bug,需要紧急修复并上线

  • tags/1.0 下的 MyApp 打一个分支 branch。位置为 /branches/MyApp

  • 打开分支 /branches/MyApp 中的代码,修改代码,解决 bug,测试通过后,提交,上线

  • 再将 branches/MyApp/ 打个 tag 到 1.0.1 目录下。位置为 /tags/1.0.1/MyApp(即 1.0 的修复版本)

  • 由于主线 trunk 也是同时开发,因此需要将 branch 合并到 trunk 上,再将 trunk 合并到 branch

  • 主线 trunk 继续开发

Git 与 SVN 的对应关系

| SVN | Git |
|---|---|---|
| trunk/ | master (refs/heads/master) |
| branches/ | refs/heads/ |
| tags/ | refs/tags/ |


引用:
SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
SVN 版本管理:兩種開發模式

你可能感兴趣的:(版本管理工具 trunk VS branch VS tag)