From 094ef987a8cd181919c1bb06e7887d36c22d0c77 Mon Sep 17 00:00:00 2001 From: Jerry Lee Date: Fri, 29 Aug 2014 11:25:16 +0800 Subject: [PATCH] add link in index; update workflow-feature-branch.md --- git-workflows-and-tutorials/README.md | 8 +++++- .../images/git-workflow-feature-branch-1.png | Bin 0 -> 24535 bytes git-workflows-and-tutorials/pull-request.md | 0 .../workflow-centralized.md | 4 +-- .../workflow-feature-branch.md | 24 ++++++++++++++++++ .../workflow-forking.md | 0 .../workflow-gitflow.md | 0 7 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 git-workflows-and-tutorials/images/git-workflow-feature-branch-1.png create mode 100644 git-workflows-and-tutorials/pull-request.md create mode 100644 git-workflows-and-tutorials/workflow-forking.md create mode 100644 git-workflows-and-tutorials/workflow-gitflow.md diff --git a/git-workflows-and-tutorials/README.md b/git-workflows-and-tutorials/README.md index 2009e36..c438447 100644 --- a/git-workflows-and-tutorials/README.md +++ b/git-workflows-and-tutorials/README.md @@ -20,7 +20,7 @@ ![Git Workflows: SVN-style](images/git-workflow-svn.png) -### 功能分支(Feature Branch)工作流 +### 功能分支工作流 功能分支工作流以集中式工作流为基础,不同的是为各个新功能分配一个单独的分支来开发。这样可以在把新功能合并到正式主干前,用`Pull Requests`的方式讨论变更。 @@ -32,18 +32,24 @@ `Gitflow`工作流通过为功能开发、发布准备和维护提供独立的分支,来简化发布迭代过程。严格的分支模型为大型项目提供了一些非常有必要的结构。 +[了解更多 »](workflow-gitflow.md) + ![Git Workflows: Gitflow Cycle](images/git-workflows-gitflow.png) ### `Forking`工作流 `Forking`工作流是分布式工作流,充分利用了`Git`在分支和克隆上的优势。可以安全可靠地管理大团队的开发者(`developer`),并能接受不信任贡献者(`contributor`)的提交。 +[了解更多 »](workflow-forking.md) + ![Git Workflows: Forking](images/git-workflow-forking.png) ### `Pull Requests` `Pull requests`是`Bitbucket`让开发者更方便地进行协作的功能,提供了友好的Web界面可以在合并得提交的修改到官方项目之前对修改进行讨论。 +[了解更多 »](pull-request.md) + ![Workflows: Pull Requests](images/pull-request.png) diff --git a/git-workflows-and-tutorials/images/git-workflow-feature-branch-1.png b/git-workflows-and-tutorials/images/git-workflow-feature-branch-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a931f2dee39ada468f0967a17ebe0c491be1bf GIT binary patch literal 24535 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