Git 是怎么创建新分支的呢?
很简单,就是要创建一个可以移动的新的指针。
比如,创建一个testing分支, 你需要使用命令:git branch testing。
示例:
可以看到(HEAD -> master, testing),说明本地版本库中,已经多了一个testing分支。
(2)图示理解如上操作,会在当前所在的提交对象上创建一个新的指针。
如下图:
那么Git 又是怎么知道当前在哪一个分支上呢? 也很简单,它有一个名为 HEAD 的特殊指针,HEAD指向当前所在的本地分支上。
在本例中,是仍然在 master 分支上。 因为 git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。
因为上面日志信息:(HEAD -> master, testing),也说明HEAD指针指向的是master分支。
如下图所示:
如图所示,当前 master 和 testing 分支均指向校验和以 b97ccfd 开头的提交对象。
2、查看分支列表执行命令:git branch。不用加任何参数。
如下图:
该命令会列出当前本地版本库中存在的所有分支,且当前正在工作的分支前会显示*。
和命令行路径后面( )中的内容相对应。
3、分支切换要切换到一个已存在的分支,你需要使用 git checkout branchname 命令。
我们现在切换到新创建的 testing 分支去:
现在 HEAD 就指向 testing 分支了。(即:HEAD 会指向当前所在的分支)
提示:
在创建分支的时候,添加-b选项,可以直接切换到新创建的分支上。
例如:git checkout -b testing
该命令等价于如下两条命令:
git branch testing:创建分支。git checkout testing:切换分支。 4、查看所有分支的最后一个提交使用git branch -v命令可以查看,所有分支的最后一次提交。
我们在testing 分支修改readme.txt文件,再进行一次提交。
通过上面的日志信息,此时 HEAD 指针的状态如下图:
可以看到 HEAD 随着在testing 分支上的提交操作,自动向前移动。
5、删除分支使用命令:git branch -d branchname。
但是要注意的是:若要删除某分支,必须要保证当前工作的分支,不能是该分支。
这个时候我们需要先切换回master分支。
此时 HEAD 指针的状态如下图:
说明:git checkout master这条命令做了两件事。
是使 HEAD 指回 master 分支。
是将工作目录中文件,恢复成 master 分支所指向提交的快照内容。
在切换分支时,一定要注意你工作目录里的文件会被改变,你的工作目录会恢复到该分支最后一次提交时的样子。如果 Git 不能干净利落地完成这个任务,它将禁止切换分支。(下面分支实战中有详细说明)
也就是说,你现在做修改的话,项目将始于 master 分支版本。 本质上来讲,这就是忽略 testing分支所做的修改,以便于向另一个方向进行开发。
继续我们开始删除 testing 分支。
提示你:分支“testing”没有合并到主分支,如果确定要删除它,请运行git branch -D testing命令。。
所以我们使用-D选项删除 testing 分支。
提示:合并后的分支不仅无用,它的存在还会引起不必要的麻烦,一般都会删除无用的分支。
以上就是Git基础学习之分支基本操作详解的详细内容,更多关于Git分支基本操作的资料请关注七叶笔记其它相关文章!