分支概念
其实,分支其实就是一个平行宇宙,试想,如果你需要修改一个特别大的地方,一时半会完成不了,但是,你没有修改完的话,别人也不好修改你的文件,只能等到你修改完毕再进行他的修改,但是,这样的话,整个项目的进程就被推迟了,所以,分支就是适合这种情况,
你可以把它看成一种在你的计算机里再次分出一个计算机对文件进行修改,既可以避免了文件丢失的风险,有提升了速度
并且,分支的创建与删除,合并十分迅速,这是svn所无法想象的
分支到底怎么回事
之前我们的master默认分支只是一条时间线,
其中HEAD指针指向当前的分支,master指向最新的提交,每次提交一次,原点就会多加一个,这是一个分支,当你新建一个分支dev的时候,默认的dev分支就会指向当前的最新提交
新建分支
git checkout -b dev//新建dev分支并转换到dev分支
OR
git branch dev//新建dev分支
git checkout dev//切换到dev分支
AND
git branch//查看当前分支
*dev//星号表示当前分支
master
dev分支上修改文件
git touch testbranch//新建一个空文件
切换分支
git checkout master//切换回master
ls//发现没有testbranch文件,那肯定啊
但是当你在新建的dev分支又有新的提交的时候,时间线就会向前一个节点,此时master仍然指向原来的版本
HEAD永远指向当前的分支
怎呢合并呢
git merge dev//合并dev分支
你会发现出现了testbranch文件
默认模式为Fast-forward快进模式,仅仅是将指针指向一个版本
合并后,原来的分支还保留,需要手动删除
git branch -d dev//删除dev分支
当希望合并两个分支的时候,方法就是把master指向dev当前版本即可
所以说,为什么说分支操作会很快,因为分支的操作仅仅是对指针的操作,所以速度是十分的快的
合并之后
合并之后,删除dev分支,事实上即完成对master的修改,而且方式十分安全迅速,所以最好的做法是希望那个修改的话,现新建一个分支进行修改在进行合并。