一、Git 分支管理
1.1 分支的概念
在Git⾥里,有个分支叫主分⽀,即 master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分⽀。
每次提交,master
分支都会向前移动一步,这样,随着你不断提交,master
分支的线也越来越长。
当我们创建新的分支,例如dev
时,Git新建了一个指针叫dev
,指向master
相同的提交,再把HEAD
指向dev
,就表示当前分支在dev
上:
你看,Git创建一个分支很快,因为除了增加一个dev
指针,改改HEAD
的指向,工作区的文件都没有任何变化!
不过,从现在开始,对工作区的修改和提交就是针对dev
分支了,比如新提交一次后,dev
指针往前移动一步,而master
指针不变
假如我们在dev
上的工作完成了,就可以把dev
合并到master
上。Git怎么合并呢?最简单的方法,就是直接把master
指向dev
的当前提交,就完成了合并:
合并完分支后,甚至可以删除dev
分支。删除dev
分支就是把dev
指针给删掉,删掉后,我们就剩下了一条master
分支:
1.2 管理分支示列
# 创建一个dev分支,然后切换到dev分支,相当于一下两个命令
# git branch dev
# git checkout dev
git checkout -b dev
# git branch命令会列出所有分支,当前分支前面会标一个*号
git branch
# 提交文件
git add .
git commit -m ""
# 切换到主分支
git checkout master
# 合并dev分支
# git merge命令用于合并指定分支到当前分支
# git merge --no-ff -m "merge with no-ff" dev
git merge dev
# 删除dev分支
git branch -d dev
git branch
1.3 Bug 分支
git stash
命令可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
git checkout master
切换到要修改bug的分支上。
git stash list
查看工作区
git stash apply
恢复工作区,但是恢复后,stash
内容并不删除,你需要用git stash drop
来删除;也可以用git stash pop
恢复的同时把stash内容也删了: