Git – 分支

分支是git的一个强大功能。分支其实就是从某个提交对象往回看的历史。

事实上,我们从一开始就在使用一个分支。当把远程仓库复制到本地时,开发环境将自动启动仓库的master分支或主分支。

git的大多数工作流程都会包含分支操作。例如,通常的工作流程是,在自己的分支上工作,完成一批更改后,将更改合并到master分支中。

注意 许多git仓库管理器(如GitLab和GitHub)允许对分支进行保护,这意味着不是每个人都可以将更改推送到远程仓库。通常,主分支默认受保护。

后续会更详细地讨论所有这些东西。

创建分支

接下来,我们想尝试修改一些东西,但不想搞乱主分支,这时就可以创建一个分支。

要创建分支,可以使用git branch <branch name>命令。

Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git branch dev

这会将新分支添加到本地仓库。当创建一个新的分支时,分支内容将是当前分支的最新提交状态的副本。

虽然工作目录和暂存区跟分支无关,但提交时,总是提交到当前所在的分支。

查看分支

创建好分支后,可以使用git branch命令查看本地仓库中的分支:

$ git branch
  dev
* master

可以看到,本地仓库中有2个分支:master 与 新创建的dev,前面带*表示当前分支,当前分支还是master,创建分支,并不会直接切换到新分支。

切换分支

Git中有一个名为 HEAD 的指针,指向当前分支, HEAD 可以理解为当前分支的别名。创建一个分支,HEAD 指针不会自动切换到新分支。

HEAD指针的情况,如下图所示:

图

图

要切换到新分支,需使用git checkout <new branch>命令,这个命令将 HEAD 指针指向新分支。

注意 git checkout命令有一个方便的-b选项,创建分支切换分支可以一次完成,格式:git checkout -b <new branch>

图

图

执行切换分支命令:

Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git checkout dev
Switched to branch 'dev'

Kevin@qikegu MINGW64 /g/project/git-demo (dev)
$ git branch
* dev
  master

修改test1.txt,添加了新的一行:abcde

test1.txt
this is a test text file
abcde

暂存到暂存区,然后提交到dev分支。

删除分支

要删除分支,可以使用如下命令:

$ git branch -d branch_name
$ git branch -D branch_name
  • -d选项是--delete的别名,只有当分支已经在其上游分支或当前分支中完全合并时,才会删除该分支。
  • 还可以使用-D,这是--delete—force的别名,它删除分支无论其合并状态如何。


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载