在版本回退已经知道每次提交git 就把他们串成一条时间线,这条时间线就是一个分支。截至到目前为止,只有一条时间线。在git里这个分支就叫主分支,即master分支,HEAD严格来讲不止指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
当我们创建新分支,例如dev是,git新建了一个指针叫dev,指向master相同的提交点,在把HEAD指向dev,就表示当前分支在dev上。
假如我们在dev上的工作完成了,就可以把dev合并到master上,给i他就是直接吧master指向dev的当前提交,就完成了合并。
首先,创建dev分支
git checkout -b dev
D:\learngit>git checkout -b dev
Switched to a new branch 'dev'
git checkout 加上-b表示创建并切换分支相当于下面两条命令
git branck dev
git checkout dev
然后用git branck 查看当前分支:
git branch
D:\learngit>git branch
* dev
master
然后在dev分支上正常提交,比如对readme.txt做个修改
D:\learngit>git add readme.txt
D:\learngit>git commit -m "branch test"
[dev cf37810] branch test
1 file changed, 2 insertions(+), 1 deletion(-)
现在,dev分支的工作完成,切换到master分支
git checkout master
D:\learngit>git checkout master
Switched to branch 'master'
发现刚才做的修改不见了,因为刚才提交在dev上,master此刻的提交点没有变,
现在把dev的分支工作成果合并到master分支上。
git merge dev
git merge 命令用于合并指定分支到当前分支
D:\learngit>git merge dev
Updating 05f13e4..cf37810
Fast-forward
readme.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
合并之后看到和dev分支最新提交结果一样
删除dev分支
git branch -d dev
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>