七叶笔记 » java编程 » Git基础学习之分支操作的示例详解

Git基础学习之分支操作的示例详解

1.新建一个分支并且使分支指向指定的提交对象

使用命令:git branch branchname commitHash。

我们现在本地库中只有一个 master 分支,并且在 master 分支有三个提交历史。

需求:创建一个 testing 分支,并且testing 分支指向 master 分支第二个版本。

如上,我们看到新创建的 testing 分支,创建在master分支的第二个版本上了。

HEAD 指针的移动状态如下图:

执行git branch testing f72a9fe命令,创建testing 分支后:

执行git checkout testing命令,切换分之后:

总结:

在日常工作中,我们可以这样的操作,切换到之前的版本,或者其他人之前写过的版本。我们把自习需要的代码进行保存,然后就可以在切换到自己开发的分支上,应用这些代码,同时把刚才创建的分支删除掉即可。

(该操作在工作中非常的实用)

2.思考

git checkout -b branchname commit-Hash命令,

能否代替下面两个命令:

git branch branchname commitHashgit checkout branchname

答案是可以的。

示例如下:

3.项目分叉历史的形成

查看当前版本库的如上,此刻正在 testing 分支的上工作,在 readme.txt 文件在第二个版本。

需求:我需要在 testing 分支的上,修改 readme.txt 文件,并提交新版本。

我们可以看到,现在这个项目的提交历史已经产生了分叉。

在实际工作中,是因为你创建了一个新分支,并切换过去进行了一些工作,可能随后又切换回 master 分支进行了另外一些工作,这样针对的是不同分支进行改动,就会在工作目录中产生项目的分叉历史。

你可以在不同分支间不断地来回切换和工作,并在时机成熟时将它们合并起来。 而所有这些工作,你需要的命令只有 branch、checkout 和 commit。

此时 HEAD 指针的状态如下图:

4.分支的总结

由于 Git 的分支实质上仅是包含,所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件,所以它的创建和销毁都异常高效。 创建一个新分支就相当于往一个文件中写入 41 个字节(40 个字符和 1 个换行符),如此的简单能不快吗。

这里简单说明一下:

这与过去大多数版本控制系统形成了鲜明的对比,它们在创建分支时,将所有的项目文件都复制一遍,并保存到一个特定的目录。 完成这样繁琐的过程通常需要好几秒钟,有时甚至需要好几分钟。所需时间的长短,完全取决于项目的规模。

而在 Git 中,任何规模的项目都能在瞬间创建新分支。 同时,由于每次提交都会记录父对象,所以寻找恰当的合并基础(即共同祖先)也是同样的简单和高效。 这些高效的特性使得 Git 鼓励开发人员频繁地创建和使用分支。

到此这篇关于Git基础学习之分支操作的示例详解的文章就介绍到这了,更多相关Git分支操作内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章