背景:
Git和Linux之父,都是由Linux之父创作的。Git火的原因是开源。
是全球最大的团管平台。项目都可以在Github上找到代码。
Git本身是一套命令行工具。所以使用Github网站和GIT软件。
http://tom.preston-werner.com/2009/05/19/the-git-parable.html
是一个英文版的比较形象的解释Git的由来+作用
大体意思是:
先介绍了VCS(version control system )
你想完成一个project,每一步实现的功能都像是拍照一样记录下来。
这样就可以容易的直达每一步做了哪些改变。也可以加一个message文档,总结每一步干了什么。通过message文档,可以知道每一步的改变,可以容易的回溯回去。多几个快照,就可以组合成一个software,然后就可以发行了。
后来会有bug出现,但是依然可以用VCS,但它是线性的,必须是上一个的快照才可以,一个快照可以同时生成几个快照。解决方法就是每个快照上都加一个父指针,分枝了,就不是线性的了,就可以回溯了(形成了一个Branch)。但是每一次分枝记录的东西就多了,显然是代价。分枝不是线性的就不好找最后一个节点。解决方法:只存储必要的信息,分枝的名字是最后一个节点的名字,分枝文件必须更新,代价较小(建立Branch Names文档)。所以建立每个节点就会有另一种工作要做,就是更新文件名。因为,branches有的当做指针,有的不动,所以有点乱,就创建一个tags文档,存储不动的branches。
后来,如果有朋友想要和你一起做这件事。1、出现了不同步的问题2、只能在联网的情况下可以分享各自的快照3、可能会重复做合并的工作。
首先Git是分布式的,而svn是中心式的(或者叫集中式的)版本控制系统,这是两者之间理念上的最大的不同。