git分支管理
git把我们每次提交的版本串成一条时间线
这个时间线就是一个分支
我们创建完版本库之后
如果直接就在默认的分支上面提交
那么现在我们操作的就是主分支
也就是 master分支
HEAD严格来说,不是指向提交
而是指向了master
master才是指向提交
所以HEAD指向的就是当前的分支
一开始的时候
master分支是一条线
git用master指向最新的提交
再用HEAD指向master
就能确定当前的分支
以及当前分支的提交点
每次提交,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分支了
我们可以输入
git branch
查看我们有多少个分支
还有我们现在在哪个分支上开发
我们执行
git checkout dev
这样就把指针放到了dev上
然后我们改一下test1.txt
helloworld001
helloworld002
helloworld003-dev
然后我们
git add code.txt
git commit -m "commit dev"
这样的话
我们就把修改提交到了dev分支上
然后我们切换到master分支
git checkout master
git branch
切换成功
然后我们打开test1.txt
vim test1.txt
我们发现里面是
helloworld001
helloworld002
并没有我们新添加的那句话
然后我们把dev的工作成果合并到master上面
git merge dev
然后就合并成功了
然后我们依然切换到master并且查看一下
git checkout master
git branch
然后我们打开test1.txt
vim test1.txt
发现
helloworld001
helloworld002
helloworld003-dev
说明我们现在的master和dev是一致的
dev上的内容已经被合并到master上面了
然后我们这次的开发工作已经完成了
那么我们删除dev
git branch -d dev
git branch
现在只剩下master了
我们来总结一下分支管理的命令
1. git branch
2. git branch <name>
3. git checkout <name>
4. git checkout -b <name> 创建并切换
5. git merge <name>
6. git branch -d <name>