From 42350e0b4d8cecf18c592c2a862a49f93b298a75 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Sat, 30 Aug 2014 00:38:21 +0800 Subject: [PATCH] complete workflow-gitflow draft --- .../git-workflow-gitflow-enduserbug.png | Bin 0 -> 5995 bytes .../git-workflow-release-cycle-5createdev.png | Bin 0 -> 5851 bytes ...rkflow-release-cycle-6maryjohnbeginnew.png | Bin 0 -> 9486 bytes ...t-workflow-release-cycle-7maryfinishes.png | Bin 0 -> 6571 bytes ...rkflow-release-cycle-8maryprepsrelease.png | Bin 0 -> 5826 bytes ...t-workflow-release-cycle-9maryfinishes.png | Bin 0 -> 8708 bytes .../workflow-feature-branch.md | 4 +- .../workflow-gitflow.md | 145 ++++++++++++++++++ 8 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 git-workflows-and-tutorials/images/git-workflow-gitflow-enduserbug.png create mode 100644 git-workflows-and-tutorials/images/git-workflow-release-cycle-5createdev.png create mode 100644 git-workflows-and-tutorials/images/git-workflow-release-cycle-6maryjohnbeginnew.png create mode 100644 git-workflows-and-tutorials/images/git-workflow-release-cycle-7maryfinishes.png create mode 100644 git-workflows-and-tutorials/images/git-workflow-release-cycle-8maryprepsrelease.png create mode 100644 git-workflows-and-tutorials/images/git-workflow-release-cycle-9maryfinishes.png diff --git a/git-workflows-and-tutorials/images/git-workflow-gitflow-enduserbug.png b/git-workflows-and-tutorials/images/git-workflow-gitflow-enduserbug.png new file mode 100644 index 0000000000000000000000000000000000000000..1f85c0f9462472cac1ebb4ac4595bd533932e4ae GIT binary patch literal 5995 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 literal 0 HcmV?d00001 diff --git a/git-workflows-and-tutorials/images/git-workflow-release-cycle-5createdev.png b/git-workflows-and-tutorials/images/git-workflow-release-cycle-5createdev.png new file mode 100644 index 0000000000000000000000000000000000000000..3060968f1380fdbb5412729be0b0a0d51a14e20c GIT binary patch literal 5851 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 X!8&r7=BM~S|4`D^G}5S3gFOE~!L-Ms literal 0 HcmV?d00001 diff --git a/git-workflows-and-tutorials/images/git-workflow-release-cycle-7maryfinishes.png b/git-workflows-and-tutorials/images/git-workflow-release-cycle-7maryfinishes.png new file mode 100644 index 0000000000000000000000000000000000000000..deabc59f229861301a2ec774b29c9ec95787e380 GIT binary patch literal 6571 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 WKPGX$Zno$DD(mYQYroKhM*I)1$D-c= literal 0 HcmV?d00001 diff --git a/git-workflows-and-tutorials/images/git-workflow-release-cycle-9maryfinishes.png b/git-workflows-and-tutorials/images/git-workflow-release-cycle-9maryfinishes.png new file mode 100644 index 0000000000000000000000000000000000000000..fd800b005760d35ca1665d972a96f1614432f178 GIT binary patch literal 8708 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 X3xe}%B=WB3|I0AYG10EpbiDsRBPuvz literal 0 HcmV?d00001 diff --git a/git-workflows-and-tutorials/workflow-feature-branch.md b/git-workflows-and-tutorials/workflow-feature-branch.md index da0b39e..84194f7 100644 --- a/git-workflows-and-tutorials/workflow-feature-branch.md +++ b/git-workflows-and-tutorials/workflow-feature-branch.md @@ -139,7 +139,7 @@ git push :beer: 下一站 ----------------- -现在但愿你发现了功能分支可以很直接地在[集中式工作流](workflow-centralized.md)的仅有的`master`分支上完成多功能的开发。 +到了这里,但愿你发现了功能分支可以很直接地在[集中式工作流](workflow-centralized.md)的仅有的`master`分支上完成多功能的开发。 另外,功能分支还使用了`Pull Request`,使得可以在你的版本控制`GUI`客户端中讨论某个提交。 功能分支工作流是开发项目异常灵活的方式。问题是,有时候太灵活了。对于大型团队,常常需要给不同分支分配一个更具体的角色。 @@ -147,4 +147,4 @@ git push ----------------- -[集中式工作流 »](workflow-centralized.md)                                [`Gitflow`工作流 »](workflow-gitflow.md) +[« 集中式工作流](workflow-centralized.md)                                [`Gitflow`工作流 »](workflow-gitflow.md) diff --git a/git-workflows-and-tutorials/workflow-gitflow.md b/git-workflows-and-tutorials/workflow-gitflow.md index 81a395f..d915fc8 100644 --- a/git-workflows-and-tutorials/workflow-gitflow.md +++ b/git-workflows-and-tutorials/workflow-gitflow.md @@ -56,3 +56,148 @@ ### 维护分支 ![](images/git-workflow-release-cycle-4maintenance.png) + +维护分支或说是热修复(`hotfix`)分支用于生成快速给发布版本打补丁,是唯一可以从`master`分支`fork`出来的分支。 +一旦修复完成,修改要合并回`master`分支和`develop`分支(当前的发布分支),`master`分支应该用新的版本号打好`Tag`。 + +为`Bug`修复使用专门线路,让团队处理问题而不用打断其它工作或等待下一个发布循环。 +你可以把维护分支想成一个直接基于`master`分支的暂时分布。 + +:beer: 示例 +--------------------- + +下面的示例演示本工作流如何用于管理单个发布循环。假设你已经创建了一个中央仓库。 + +### 创建开发分支 + +![](images/git-workflow-release-cycle-5createdev.png) + +第一步为`master`分支配套一个`develop`分支。简单来做可以[本地创建一个空的`develop`分支](https://www.atlassian.com/git/tutorial/git-branches#!branch),`push`到服务器上: + +```bash +git branch develop +git push -u origin develop +``` + +这个分支包含了项目的全部历史,而`master`分支包含了删减版的历史。然后其它开发者应该克隆中央仓库,建好`develop`分支的跟踪分支: + +```bash +git clone ssh://user@host/path/to/repo.git +git checkout -b develop origin/develop +``` + +现在每个开发都有了历史分支的本地拷贝。 + +### 小红和小明开始开发新功能 + +![](images/git-workflow-release-cycle-6maryjohnbeginnew.png) + +这个示例中,小红和小明开始各自的功能开发。他们需要为各自的功能创建相应的分支。各自的新分支不是基于`master`分支,而是应该[基于`develop`分支](https://www.atlassian.com/git/tutorial/git-branches#!checkout): + +```bash +git checkout -b some-feature develop +``` + +他们用老套路添加提交到各自功能分支上:编辑、暂存、提交: +```bash +git status +git add +git commit +``` + +### 小红完成功能开发 + +![](images/git-workflow-release-cycle-7maryfinishes.png) + +添加了提交后,小红觉得她的功能OK了。如果团队使用`Pull Requests`,是个合适的时候发起一个合并到`develop`分支。 +否则她可以直接合并到她本地的`develop`分支后`push`到中央仓库: + +```bash +git pull origin develop +git checkout develop +git merge some-feature +git push +git branch -d some-feature +``` + +第一条命令在合并功能前确保`develop`分支是最新的。注意,功能决不应该直接合并到`master`分支。 +冲突解决方法像[集中式工作流](workflow-centralized.md)一样。 + +### 小红开始准备发布 + +![](images/git-workflow-release-cycle-8maryprepsrelease.png) + +这个时候小明正在实现他的功能,小红开始准备她的第一个项目正式发布。 +像功能开发一样,她用一个新分支来完成发布准备。这一步也确定了发布的版本号: + +```bash +git checkout -b release-0.1 develop +``` + +这个分支是清理发布、执行所有测试、更新文档和其它为下个发布做准备操作的地方。像是一个专门用于改善发布的功能分支。 + +只要小红创建这个分支并`push`到中央仓库,这个发布就是功能冻结的。任何不在`develop`分支中的新功能都推到下个发布循环中。 + +### 小红完成发布 + +![](images/git-workflow-release-cycle-9maryfinishes.png) + +一旦可以对外发布,小红合并修改到`master`分支和`develop`分支上,删除发布分支。合并回`develop`分支很重要,因为在发布分支中已经提交的更新需要在新功能中也有的。 +另外,如果小红的团队要求`Code Review`,这是一个发起`Pull Request`的理想时机。 + +```bash +git checkout master +git merge release-0.1 +git push +git checkout develop +git merge release-0.1 +git push +git branch -d release-0.1 +``` + +发布分支是作为功能开发(`develop`分支)和对外发布(`master`分支)间的缓冲。只要有合并到`master`分支,就应该打好`Tag`以方便跟踪。 + +```bash +git tag -a 0.1 -m "Initial public release" master +git push --tags +``` + +`Git`有提供勾子(`hook`),即仓库有事件发生时触发执行的脚本。 +可以配置勾子,在你`push`中央仓库的`master`分支时,自动执行对外发布的构建。 + +### 最终用户发现`Bug` + +![](images/git-workflow-gitflow-enduserbug.png) + +对外发布后,小红回去和小明一起做下个发布的新功能开发,直到有最终用户开了一个`Ticket`抱怨当前版本的一个`Bug`。 +为了处理`Bug`,小红(或小明)从`master`分支上拉出了一个维护分支,提交修改以解决问题,然后直接合并回`master`分支: + +```bash +git checkout -b issue-#001 master +# Fix the bug +git checkout master +git merge issue-#001 +git push +``` + +就像发布分支,维护分支中新加重要修改需要合到`develop`分支中,所以小红要执行一个合并操作。然后就可以安全地删除这个分支了: + +```bash +git checkout develop +git merge issue-#001 +git push +git branch -d issue-#001 +``` + +:beer: 下一站 +----------------- + +到了这里,但愿你已经对[集中式工作流](workflow-centralized.md)、[功能分支工作流](workflow-feature-branch.md)和`Gitflow`工作流感觉很舒适了。 +你应该牢固的掌握了本地仓库的潜能,`push`/`pull`模式和`Git`健壮的分支和合并模型。 + +记住,这里展示的工作流只是可能例子,而不是在工作中使用`Git`不可违逆的条例。所以不畏惧去接受或忽略另一个工作流的某些用法。 +不变的目标就是让`Git`为你所用。 + +----------------- + +[« 功能分支工作流](workflow-feature-branch.md)                                [`Forking`工作流 »](workflow-forking.md)