每天对自己多问几个为什么,总是有着想象不到的收获。 一个菜鸟小白的成长之路(copyer)
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master
分支。HEAD
严格来说不是指向提交,而是指向master
,master
才是指向提交的,所以,HEAD
指向的就是当前分支。
推荐博客:https://www.cnblogs.com/matengfei123/p/8252128.html
创建dev分支和bug分支
-
查看master分支上的版本(存在两个版本)
-
查看当前的分支(master)
git branch
-
开发一个新的功能,创建一个dev分支
git branch dev //创建一个dev分支
-
切换到dev分支,写新功能的代码
git checkout dev //进行性一系列的代码提交流程 git commit -m 'v3版本' git log
看到了
dev分支
上,是存在v3版本的
,但是在master分支上是不存在v3版本的
-
在
v2版本
中遇见一个bug,需要停止新功能的开发,去修复bug。那么就需要切换到主分支,然后创建bug分支
git checkout master //切换到主分支 git branch bug //在主分支上创建一个bug分支 git checkout bug //切换到bug分支,进行修复bug
-
合并分支(在主分支上(master) 合并 bug分支)
git checkout master //切换到主分支 git merge bug //合并bug分支上的v2版本
然后在查看master分支上的版本
-
删除bug分支
git branch -d bug
-
接下来,又是去开发新的功能在dev分支上,开发剩余的模块
git checkout dev //开发剩余的工作量 git commit -m 'v3新功能开发完毕' git checkout master git merge dev //这下会发现冲突
原因:
-
在master的主分支上,最新的版本已经是
v2版本的bug修复
-
dev分支创建的时候,是在
v2版本
的基础上创建的,所以不是主分支最新的代码 -
所以合并的时候,如果有一行代码,跟主分支不一样就会产出冲突
-
解决冲突:就是查看提示,然后在编辑器中删除有冲突的代码,保留主分支上的 代码
vscode就有这很好的提示,根据需求操作即可。
选择第二个就OK了。
-
命令总结
git branch //查看分支
git branch dev //创建分支
git checkout dev //切换到dev分支
git merge dev //切换到主分支,然后在合并dev分支
git branch -b dev //删除dev分支