目录
1.3 切换当前分支(git switch)与合并分支(git merge)
一、本地分支(local branches)管理
关于Git本地仓库分支的管理,按功能大致可分四组。
1 查看和建立分支等:包括查看、建立、删除分支,分支重命名等;
2 切换、浏览和比较分支:包括切换、浏览提交日志等;
3 分支比较及分支合并;
4 签出分支:把分支或提交或文件签出到当前分支的工作目录(working tree)中,以便进行查阅和修改。
尽管Git命令有许多是“一专多能”(带不同的参数即执行不同功能)的,但恐并不利于初学者理解。所以这一节对常用的十几个基本命令及其用法作一简介,希望利于初学者掌握。
1.1 查看和建立分支等( git branch)
命令1.1 查看仓库里有哪些分支:
$ git branch
这是最常用的命令之一,Git输出本地仓库的所有分支名称。例如:
图1 输出的结果说明仓库01有两个分支:main和test,而且主分支main是当前分支
图1的输出说明:仓库01中只有两个分支,main和test。而且分支名main前标注的星号说明它是“当前分支”,即仓库的HEAD指针定位是main。
我们也可以通过查看仓库01中.git子目录里文件HEAD的内容得到谁是当前分支,因为其内容正是当前HEAD指针所指的分支路径,如下图所示:
图2 从01/.git里的文件HEAD的内容看到,当前分支是main
那么从01/.git中怎样看出当前仓库有两个分支呢?查看一下文件夹01/.git/refs/heads,即知其中恰有两个文件,名为 main 和 test ,如下图:
图3 从01/.git/refs/heads里的文件看出仓库有几个分支
这里我们不妨猜一猜这两个文件的内容。需要注意的是,.git是隐藏的文件夹。
注:在命令$ git branch后加上参数 -av,Git就会输出所有分支的信息,包括远程分支(见2.1节),而不只是本地分支。
命令1.2 创建一个名为Y的分支:
$ git branch Y
注意,这个命令会在当前分支的最新提交处(即分支指针所指的提交处)创建一个新分支Y。例如,设最新提交ID是f30ab,则新分支Y以提交f30ab为分叉点。其实,命令$ git branch Y 也可以看成是命令“ git branch Y f30ab” 的省略形式,后者见命令1.3。
如果现在查看图3中的文件夹,会发现多了一个名为Y的文件。而且这个文件的内容,是最新提交的ID号(40位哈希值)。
命令1.3 在指定的提交C处创建一个名为Y的分支:
$ git branch Y C
例如:在当前分支的一个提交4288处创建一个名为newone的分支</