【git】3.1git分支-分支简介
资料来源
(1) https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%AE%80%E4%BB%8B
1.分支的作用
(1) 使用分支可以将工作从开发主线上分离开来,以免影响开发主线;
2.分支介绍
(1) git的分支,本质上仅仅是指向提交对象的可变指针;
(2) git的默认分支名字是master; master分支在每次提交时,自动向前移动;
(3) git的master分支并不是一个特殊分支,和其他分支完全没有区别; 之所以几乎每个仓库都有master分支,是因为git init命令默认创建它;
2.1 分支创建git branch
(1) git branch 分支名,如git branch branch1;
(2) git branch会在当前所在的提交对象上创建一个指针;
注1:git怎么知道当前在哪个分支上? git有一个名为HEAD的特殊指针,该指针指向当前所在的本地分支;
2.2 分支切换git checkout
(1) git checkout 分支名,如git checkout branch1;
(2) 执行该命令后,HEAD指向分支branch1;
(3) 在分支branch1上执行git commit操作后, 分支branch1会向前移动,但是master分支并没有, master分支依然指向运行git checkout时所指的对象; 此时,执行git checkout master,会有两个影响,一是使HEAD指回master分支,二是将工作目录恢复成master分支所执行的快照内容(本质上讲,是忽略branch1分支所作的修改,以便于向另一个方向进行开发);
注1:分支切换会改变工作目录中的文件;
(4) 项目的分叉:创建一个新分支branch1,并切换过去进行一些工作; 随后又切换回master分支,进行另外一些工作;这两次改动针对的是不同分支,可以在不同分支间不断来回切换和工作,并在适当时将它们合并起来;
注1:使用git log --oneline --decorate --graph --all可以查看分叉历史;
2.3 分支创建同时切换git checkout -b
(1) git checkout -b 分支名,如git checkout -b branch1,等同于git branch branch1 + git checkout branch1;