Git 的 分支
出了名的好用。其它的版本控制系统也提供分支,但在易用度上,只有两类版本控制系统:一种是 Git,一种是其它。
Bob 大叔在《匠艺整洁之道》中写道:
我曾经坚持拒绝分支。在使用 CVS 和 Subversion 的时候,我禁止团队成员对代码进行分支。
…
但后来我换成了 Git ——就在一夜之间,一切都改变了。
除了 Bob 大叔,我还听到过其他很多人称赞并使用 Git 的分支。那么,什么是 分支
(branch) ?
分支
就是一条独立的开发线。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
这可以提供隔离,你在这个分支上所做的任何工作都已和其它分支隔离开。如果你在一个分支中开发了特性 A,而另一个团队成员在另一个分支上开发了特性 B,你们之间不会相互干扰1。
这涉及到一个常用的 Git 工作流
(Workflows):特性分支工作流。工作流是一个术语,是指用 Git 维护软件项目时使用的工作模式。特性分支工作流是指:
默认分支是 master 分支,称为
主分支
,保存最新的、随时可以发布的版本。当软件发布时,就将主分支打一个标签
用作发布版本。其他人在主分支上新建一个分支,这个新建的分支称为特性分支
。所有的新特性、BUG 修改都在特性分支上完成,工作告一段落后,将提交合并
请求,合并到主分支。合并前,通常会对新代码进行评审,评审通过才可以合并到主分支。一旦特性分支合并到主分支,就可以删除特性分支了。
创建分支
右键菜单 TortoiseGit → Create Branch…,弹出创建分支对话框:
Branch
:输入分支名称
可以选择新创建的分支是基于哪个提交的:
HEAD
:当前检出的提交Branch
:所选分支的最后一个提交Tag
:所选标签的提交Commit
:任意提交,你需要单击...
启动提交日志对话框,然后选择需要的提交。也可以直接输入提交的哈希码或者提交名(比如HEAD~4)
还有一些可选项:
Track
:这是一个三状态复选框(选中、未选中、部分选中),如果选中则向Git传递--track
参数、未选中则向Git传递--no-track
参数、部分选中则既不向Git传递--track
参数也不传递--no-track
参数。Force
:强制创建一个分支,甚至存在重名分支的情况下也可以创建。Switch to new branch
:分支成功创建后自动切换到新分支。如果选中该功能,首先要确保当前工作树中没有未修改文件。否则,这些更改将在分支切换时合并到分支工作区。
注意:如果你只是创建了分支,并没有切换到新分支上,那么之后的更改也只会提交到原始分支而不是新分支,所以如果你想创建分支并切换到新建的分支,请确保勾选 Switch to new branch
选项。
读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
《程序员修炼之道》 ↩︎