Git 分支工作流程

3.4 Git 分支 - 利用分支进行开发的工作流程

利用分支进行开发的工作流程

现在我们已经学会了新建分支和合并分支,可以(或应该)用它来做点什么呢?在本节,我们会介绍一些利用分支进行开发的工作流程。而正是由于分支管理的便捷,才衍生出了这类典型的工作模式,你可以根据项目的实际情况选择一种用用看。

长期分支

由于 Git 使用简单的三方合并,所以就算在较长一段时间内,反复多次把某个分支合并到另一分支,也不是什么难事。也就是说,你可以同时拥有多个开放的分支,每个分支用于完成特定的任务,随着开发的推进,你可以随时把某个特性分支的成果并到其他分支中。

许多使用 Git 的开发者都喜欢用这种方式来开展工作,比如仅在 master 分支中保留完全稳定的代码,即已经发布或即将发布的代码。与此同时,他们还有一个名为 develop 或 next 的平行分支,专门用于后续的开发,或仅用于稳定性测试
— 当然并不是说一定要绝对稳定,不过一旦进入某种稳定状态,便可以把它合并到 master 里。这样,在确保这些已完成的特性分支(短期分支,比如之前的 iss53 分支)能够通过所有测试,并且不会引入更多错误之后,就可以并到主干分支中,等待下一次的发布。

本质上我们刚才谈论的,是随着提交对象不断右移的指针。稳定分支的指针总是在提交历史中落后一大截,而前沿分支总是比较靠前(见图 3-18)。

图 3-18. 稳定分支总是比较老旧。

或者把它们想象成工作流水线,或许更好理解一些,经过测试的提交对象集合被遴选到更稳定的流水线(见图 3-19)。

图 3-19. 想象成流水线可能会容易点。

你可以用这招维护不同层次的稳定性。某些大项目还会有个 proposed(建议)或 pu(proposed
updates,建议更新)分支,它包含着那些可能还没有成熟到进入 next 或 master 的内容。这么做的目的是拥有不同层次的稳定性:当这些分支进入到更稳定的水平时,再把它们合并到更高层分支中去。再次说明下,使用多个长期分支的做法并非必需,不过一般来说,对于特大型项目或特复杂的项目,这么做确实更容易管理。

特性分支

在任何规模的项目中都可以使用特性(Topic)分支。一个特性分支是指一个短期的,用来实现单一特性或与其相关工作的分支。可能你在以前的版本控制系统里从未做过类似这样的事情,因为通常创建与合并分支消耗太大。然而在 Git 中,一天之内建立、使用、合并再删除多个分支是常见的事。

我们在上节的例子里已经见过这种用法了。我们创建了 iss53 和 hotfix 这两个特性分支,在提交了若干更新后,把它们合并到主干分支,然后删除。该技术允许你迅速且完全的进行语境切换
— 因为你的工作分散在不同的流水线里,每个分支里的改变都和它的目标特性相关,浏览代码之类的事情因而变得更简单了。你可以把作出的改变保持在特性分支中几分钟,几天甚至几个月,等它们成熟以后再合并,而不用在乎它们建立的顺序或者进度。

现在我们来看一个实际的例子。请看图 3-20,由下往上,起先我们在 master 工作到
C1,然后开始一个新分支 iss91 尝试修复
91 号缺陷,提交到 C6 的时候,又冒出一个解决该问题的新办法,于是从之前 C4 的地方又分出一个分支 iss91v2,干到
C8 的时候,又回到主干 master 中提交了
C9 和 C10,再回到iss91v2 继续工作,提交
C11,接着,又冒出个不太确定的想法,从 master 的最新提交
C10 处开了个新的分支 dumbidea 做些试验。

图 3-20. 拥有多个特性分支的提交历史。

现在,假定两件事情:我们最终决定使用第二个解决方案,即 iss91v2 中的办法;另外,我们把dumbidea 分支拿给同事们看了以后,发现它竟然是个天才之作。所以接下来,我们准备抛弃原来的iss91 分支(实际上会丢弃
C5 和 C6),直接在主干中并入另外两个分支。最终的提交历史将变成图 3-21 这样:

图 3-21. 合并了 dumbidea 和 iss91v2 后的分支历史。

请务必牢记这些分支全部都是本地分支,这一点很重要。当你在使用分支及合并的时候,一切都是在你自己的 Git 仓库中进行的 — 完全不涉及与服务器的交互。

时间: 2024-10-05 06:09:23

Git 分支工作流程的相关文章

基于git的工作流程

本文针对的是追求极致.快速的产品响应团队的.以下的观点和内容都是围绕这个主题,暂时不涉及个人学习和团队学习. 在说工作流程之间,想说一下我们平常工作中遇到的一些困惑或者说现象 在一个团队里,同时有好多事件要解决.有的是产品迭代,有的是bug修改,有的可能是技术结构调整等.怎么去保证他们之间的独立性? 什么时候应该切分支?合并后的分支还能再作修改吗?分支什么时候需要删除?什么时候这个分支的生命周期才算完成? 主干可以修改代码吗?多少次分支合并到主干才发布一个版本? 什么时候版本才算稳定.什么时候才

Git手册 - 工作流程

如果代码已经通过测试,那么则可以采取以下步骤或流程完成代码的合并: 1)切换至master分支,记住千万别直接提交修改至master分支: #git checkout master 2)基于master分支新建个临时分支,并切换至新建的分支 #git checkout -b branchName 3)将要提交的代码添加至新建的分支 #git checkout develop [files/folder]        //这里develop分支添加过来的文件会自动替换掉新建分支中的同名文件,并且

git 基本工作流程

Git常用命令: http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html git config --help  查看帮助 git config --global user.name 如果有则修改 如果没有则添加 xxx git config user.email    如果有则修改 如果没有则添加 xxxxxxxxxxx 查看全局级的config,命令:git config --global -l 编辑git配置文件命令: git

[git]git的工作流程

git有三个区域(如图): 基本信息设置 1)设置用户名   git config --global user.name  "帐号名" 2)设置用户名邮箱  git config --global user.email  "注册的邮箱" git的使用步骤 1)在本地电脑,创建一个文件夹  (可以使用命令 [mkdir 文件夹名称]  |   使用win菜单) 2)初始化git仓库 ( 使用命令 [git  init] ),在本地产生.git文件夹 ----- 3)创

git工作流程

一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交. Git 的工作流程示意图: git的工作区.暂存区和版本库 基本概念: 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index). 版本库

git概念及工作流程详解

git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别及理解git几个重要概念. 至于什么是git,git的发展历史,网上已经有很多资料,可以自行google或百度. 关于git与svn的区别 这里不针对git与svn的区别详细深究,以便对双方的优缺点了解更多些. 1) 最核心的区别Git是分布式的,而Svn不是分布的. 能理解这点,上手会很容易,声明

Git的工作模式和工作流程

git的优缺点 git属于分布式版本控制系统:客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整的镜像下来. 优点: 1.由于任何人每次提取操作,实际上都是一次对代码仓库的完整备份,因此近乎所有的操作都可以在本地执行,速度就是相当的快,并且可以在网络断开的时候操作仍然不受影响,可以频繁的进行提交更新,等到有网络的时候再上传到远程的镜像仓库就可以了. 2.git的分支模型,相当的轻量级,被称为"必杀技". 缺点: 1.每个开发人员都拥有所有的代码,不利于核心代码的保密(如果有重

GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)

最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮助. GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'desc

【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

找到一篇很详细的Git教程,真的很不错,推荐!!! GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  . GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'description' ; -- 本地git仓库关联GitHub仓库 : git remote add origin [email