我也是对git有所学习而已,也谈不上有多厉害,而且这篇也只是我个人的一些想法,及其实践过程的一些小小的总结。
版本控制
好像还没有解释什么叫版本控制,我也不去百度了,那样只是拷贝别人的东西而已。我就以个人的理解作为讲解。我理解的版本控制是对每次的***的更新,删除,修改都能通过和上次比较得出哪些不同,并且能够实现自动合并。可能不够准确,没关系。尝试接下来的内容来讲解清楚。
在没有版本控制的时期
这个时候应该是混乱的。如果是一个人写代码还好,要是10几个人写代码,怎么才能保证一个统一的版本呢?可能最容易想到的是将每个人的代码进行合并。要是两个人甚至三个人可能问题不大,说一下你那里有改变,应该还能忍受这种痛苦。但是我的前提是10几个人写代码。总不可能专门有一个人是合并代码的吧?我也不知道以前有没有人是专门干这个的。但是要是有的话,那个人绝对是憋屈的。即使就手动合并了,而且会很容易出错,因为人多,人多了总感觉错误的几率就大了。有些牵强。但是实际上应该差不多是这样的。这样写代码可能有一般的时间都浪费在整合代码了。我也经历过来了这个时期,虽然有版本控制如svn,git之类的工具了。但是没有善于利用,着实苦了一会。而且那个时候人还算可以4个人,代码量不多就轻松的暴露了这个问题,怎么保持一个统一的版本。如果是一个真正的***更是恐怖,代码量更多。所以可以想象得到没有版本控制是多么可怕的事
出现svn之类集中式管理代码工具
这个时候就有了版本控制的工具了。于是很多人去使用。比较典型的就是svn,不知道的话就百度一下,我就不解释了。他是集中式的版本,什么是集中式呢?集中两个字可以体现,就是将代码放在一起,结合一下svn的实际情况就是,有个代码库,你可以从中拷贝、更新、上传代码。要是这个代码库挂了,那也就不能用了。这样做其实就是很方便,每个人只有将代码拷贝下来,再修改,上传之前先更新,防止把别人的版本给覆盖了,在将自己的打码更新上去。这样就完成了你的事情,不需要手动合并了,别人只要更新就能得到你的新修改的代码了。
出现git分布式的版本控制工具
我只知道git是Linux之父,为了管理Liunx上百万行的代码,自己编写了一个版本控制的东西。后面就很多人再用,再来就很流行了。和之前不同的就是分布式。从分布一词可以看出,代码不是集中分布的。对,也不对。不管怎么说,放代码的地方都只是一个地方,那个地方就是代码库,但是分布式不同的是在本地也可以有一个一个版本库,所以实际的上传代码应该是本地的仓库更新到远程的仓库。而且将自己的代码放在本地仓库之前还有一个添加***作。相对于svn只需要commit一条命令就可以解决很多事来说。git这样做虽然没有那么方便了,但是明显更灵活了,要是要修改已经提交的内容的话,svn可能就需要重新传一次,不然就版本回退。git却可以很灵活的***作,达到同样的效果。
既然是git的概述还是多说一些:
git有三个不同的区。工作区、暂存区、本地仓库。相对于svn之类的就一个区处理了
工作区:很很明显,就是工作的地方。也就是对代码直接修改的东西是在工作区中的,工作区中的文件被分为三种,已经被追踪,未被追踪,忽略文件。忽略文件很好理解,就是相对于这个这整个***来说,是忽略的状态的,不会理会有没有修改,相当于‘隐藏’或者‘看不见’忽略文件。未被追踪文件,就是新增文件的初始状态。追踪文件,只需要将文件放在暂存区,就会队文件进行追踪处理,一切修改都会被检测到。
暂存区:工作区的内容增加就到了暂存区,暂存区的对***作进行修改很方便,工作区的内容可以提交到本地仓库
本地仓库:这个好理解吧。
先简单的介绍到这边吧,下次有机会再来补充
因为本人水平有限,不足之处还望海涵。