Skip to content

分支策略

Liam Huang edited this page May 31, 2016 · 3 revisions

本文阐述 sduthesis 在 Git 上的分支开发策略。

常规分支

master 分支是项目的主分支。该分支是默认在 GitHub 上呈现的分支,也是对用户来说最稳定的分支。 该分支只保存稳定版本的代码;也就是说,该分支的最新代码,总是和 release 页面上的最新版本保持一致。

dev 分支是项目的开发分支。该分支总是 master 最新提交的直接后继,用于保存在 release 版本后尚处开发但暂未发布的版本。

gh-pages 分支是项目的主页分支。该分支保存了项目主页的 HTML 代码以及 CSS 样式表文件等内容。

常规分支是永久性的,也就是说在 GitHub 上必须永久保留这些分支的状态。常规分支只有 3 个。

新特性开发

新特性开发分支,总是从 dev 分支牵出并最终合并回 dev 分支。 这些分支总是临时性的:它们在完成历史使命后,应当从 GitHub 远程服务器删除;甚至只在开发者本地存在,而不上传 GitHub。

当你需要开发一个新的特性时,你应该遵循如下操作:

git checkout dev                     # 切换到 `dev` 分支
git pull                             # 从 GitHub 远端拉取 `dev` 分支的最新状态
git checkout -b dev-<new_feature>    # 从 `dev` 分支的最新状态牵出一个新的分支,供开发
# 开发中,提交代码到 `dev-<new_feature>` 分支上,开发完成后进行下一步
git checkout dev                     # 切换到 `dev` 分支
git pull                             # 从 GitHub 远端拉取 `dev` 分支的最新状态
git checkout dev-<new_feature>       # 回到工作分支
git merge dev                        # 将 `dev` 分支的最新状态合并至工作分支
# 合并代码后,检查你的开发是否符合预期,确认后进行下一步
git checkout dev                     # 切换到 `dev` 分支
git merge --no-ff dev-<new_feature>  # 将工作分支的代码,合并至 `dev` 分支
git push origin dev                  # 将 `dev` 分支的状态推送到 GitHub 上

发布新版本

dev 分支上的特性已经稳定,预备要发布一个新版本的时候,请这样做:

git checkout dev                     # 切换到 `dev` 分支
git pull                             # 从 GitHub 远端拉取 `dev` 分支的最新状态
# 检查拉取后的代码是否符合预期,若符合预期,则进行下一步
# 修改 `sduthesis.dtx` 内的日期和版本标记,保存后进行下一步
git commit -am "<version>"           # 制作一个新的提交
git checkout master                  # 切换到 `master` 分支
git pull                             # 从 GitHub 远端拉取 `master` 分支的最新状态
git merge dev                        # 从 `dev` 分支合并开发代码
git tag -a <version>                 # 注意,`-a` 后的 <version> 不带引号
# 在打开的编辑器里,键入该版本的信息,包括该版本的功能变化和注意事项
# 保存后进入下一步
git push origin master dev --tags    # 将 `master` 和 `dev` 分支以及新打的标签都推送到 GitHub

至此,release 页面应该已经自动生成了一个新的发布版本。

注意:发布新版本时,版本号请遵守版本号策略

Clone this wiki locally