Git学习一:原理及其理解

之前一篇关于Git的描述不够,其根本的优势没彻底理解,今天补充一下。
Git学习一:原理及其理解
我们都知道,每一次提交,就会多一个节点,Git就把它串联起来,形成一个时间线。这个形成的时间线叫主分支,即master分支。
HEAD严格来说不是指向提交(有点间接指向的意思),它是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。在黄色箭头所指的地方,我们可以看到是节点2,随着你不停的新提交时间线会越来越长。
Git学习一:原理及其理解
比如我们现在要上一个月度需求,开发拉了一个分支下来写代码(创建分支:git branch )。这个时候,就是新建了一个指针,指向了master分支,而此时head指向DEV(它指向谁就代表当前分支在谁上),当前分支在DEV上。
注意:此时除了新增了一个指针,其他的没有任何变化,工作区内也没有变化!
在git中为什么分支操作非常高效而无其他资源负担的缘故就是因为它不过是个指针,这也是和svn等分支(独立目录)的根本区别之一。
Git学习一:原理及其理解
假如此刻开发工作已经完成(git checkout ),那么如何提交呢?
只需要把master的指针,指向节点3(也就是指向DEV当前的提交),就可以完成合并!
Git学习一:原理及其理解
对,完成的合并动作实际上就是改了指针的指向(git merge )!工作区内容没有任何变化。此时,我们可以删除DEV分支(删除分支:git branch -d )。

Git的作用就可以实现多人同时开发且基本上不会出现太多的冲突情况,而相比SVN来说,操作更方便,资源占用更少。
对于我们测试来说,可以拉一个分支进行测试,或者直接就是在主干上进行测试。
Git学习一:原理及其理解
我们掌握了Git的大致原理和优势,对于其构造理解起来就简单了很多,思路也清晰。
还有后续相关的命令,等待以后再总结。
Git学习一:原理及其理解