版本管理
- Git 简明教程 - (推荐)短小精悍纯干货!如果您是初次接触 Git 想要快速入门,那么强烈推荐您先看这个
- - (推荐)阮一峰老师最新出品,虽然讲的 Git,个人认为同样适用其他版本管理系统
- Blog: A successful Git branching model - 基本上是目前为止最靠谱的 Git Flow 指南了,也可以参考阮一峰老师的解读 -
- Atlassian Git Tutorials - Atlassian 关于 Git 的教程(推荐)。 Comparing Workflows 这个章节介绍了几种常见的 Git 协作形式,
- LeanCloud 团队的 Git 分支管理规范 - LeanCloud 的这个开放资源项目逼格很高,里面很多干货,请收下我的膝盖 (逃~
Github Flow
- Blog: Github flow - 在 Github 工作,更是 《Pro Git Book》 作者
- Book: Pro Git Book - 关于 Git 这一本书够了,入门先看前面几章了解基本概念和日常使用
- - 这个项目整理了许多关于 Github & Git 的小技巧,强烈建议过一下
- GotGitHub - Git 权威指南作者蒋鑫关于 Github 写的开源书
- Git Rebase -
SVN 版本库布局 - trunk, branches, tags
SVN Flow? :-)
SVN 版本库只是一个包含目录和文件的文件系统,而且它的文件系统是版本化的,并且实现了” 廉价”拷贝,让它的这种操作比传统文件系统廉价很多,但是版本库本身还是像一个文件系统。
至于版本库中目录的名称,只是一种习惯,他们在 SVN 中没有特别含义。我们在一些著名开源项目的版本库中,通常可以看到 trunk、branches、tags 等三个目录。
- trunk 是主分支,可以认为是项目的开发主线,你可以称之为 main、master 或任何你喜欢的名字。
- branches 是分支。一些阶段性的 release 版本,这些版本是可以继续进行开发和维护的,则放在 branches 目录中。人们因各种目的使用分支,你或许希望通过特性分支或客户修改分支来隔离你的发布或维护分支等。
- tags 目录一般是只读的,这里存储阶段性的发布版本,对作为里程碑的版本进行存档。通常情况下 tags 与分支的区别就是 tags 一旦创建不能修改,你也可以将标签目录叫做 releases 或任何你喜欢的名字
开源社区采纳了多种常用布局作为最佳实践,我们应该遵循推荐的布局方式,按照这些布局约定,大家可以方便的访问版本库找到所需要的信息。
有两种常见的版本库布局:
第一种布局是版本库包含一个项目或一组紧密联系项目的最佳选择。
这个布局非常好用,因为分支与标签整个项目或一组项目会非常简单,只需要一个简单的命令:
另一种布局是针对一个版本库包含不相关项目的最佳选择。
在这种布局里,每个项目会存在顶级目录里,然后该目录之下创建 trunk/branches/tags,其中与第一种布局相同,这只是将项目放到自己版本库方式的替换,他们都在一个版本库中。 Apache 软件基金会使用这种布局方式来存放他们的所有项目在一个版本库。
通过这种布局,每个项目都有自己的分支和标签,可以很容易使用一个命令创建分支和标签,就像前面展示的:
这种布局可以简单的创建同时包含 ProjectA 和 ProjectB 的标签,你可以这样做,但是需要多个命令,你也要决定是否创建一个特别的目录存放这种分支和标签,如果你需要经常这样做,你或许应该考虑第一种布局。
扩展阅读
- - 自建 Git 平台的多数都用 ta 啦,Github fork~?
- Gogs - Go Git Service - Go 语言开发的轻量级 Git 管理工具(不喜欢随大流的同学们有福啦~)
- - Web 版 SVN 管理工具(PHP)
- USVN - Web 版 SVN 管理工具(PHP)
客户端
- 乌龟系列(Windows only)
- TortoiseSVN - Subversion client for Windows
- - Git client for Windows
- TortoiseHg - Mercurial client for Windows, Mac OS and Linux
- Eclipse 系列
- - Eclipse 中的 Git 插件
- Subclipse - Ecplise 中的 Subversion 插件
- - Eclipse 中的 Subversion 插件
- RabbitVCS - Linux 下很好用的一款图形客户端,支持 Subversion, Git & Mercurial
- - Github 提供的 Git 客户端,提供 Mac OS 和 Windows 版本
- SourceTree - Atlassian 提供的同时支持 Mac OS 和 Windows 系统的一款图形客户端,支持 Git & Mercurial
- - Subversion client for Mac OS, Windows and Linux(专业版收费)
- Cornerstone - Mac OS 下的 SVN 客户端(收费)
- - Mac OS 下的 SVN 客户端(收费)
- Tower - Mac OS 平台 Git 客户端(收费)