Git版本号控制 为什么那么复杂 头大 (忍不住强烈吐槽)

想把自己的源代码保存到云端。想到了用Github.com,然后便開始看怎么使用GIT。

一開始,没有接触之前,想的非常easy的。应该就跟SVN几乎相同吧。写好了提交就能够了。

只是使用了之后才发现根本就不是这样。并且阅读了官网的介绍说明手冊,更是认为不仅不是想象的那样,反而根本就难以理解,甚至无法理解。


GIT官网的一段描写叙述:

在 Git 中的绝大多数操作都仅仅须要訪问本地文件和资源,不用连网

但假设用 CVCS 的话,几乎相同全部操作都须要连接网络。由于 Git 在本地磁盘上就保存着全部当前项目的历史更新,所以处理起来速度飞快。

举个样例。假设要浏览项目的历史更新摘要,Git 不用跑到外面的server上去取数据回来,而直接从本地数据库读取后展示给你看。所以不论什么时候你都能够立即翻阅。无需等待。假设想要看当前版本号的文件和一个月前的版本号之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程server来做这件事。或是把老版本号的文件拉到本地来作比較。

用 CVCS 的话。没有网络或者断开 VPN 你就无法做不论什么事情。但用 Git 的话。就算你在飞机或者火车上。都能够很愉快地频繁提交更新。等到了有网络的时候再上传到远程仓库。相同,在回家的路上。不用连接 VPN 你也能够继续工作。

换作其它版本号控制系统,这么做差点儿不可能,抑或很麻烦。比方 Perforce,假设不连到server,差点儿什么都做不了(译注:默认无法发出命令 p4 edit file 開始编辑文件,由于 Perforce 须要联网通知系统声明该文件正在被谁修订。

但实际上手工改动文件权限能够绕过这个限制,仅仅是完毕后还是无法提交更新。);假设是 Subversion 或 CVS,尽管能够编辑文件,但无法提交更新,由于数据库在网络上。看上去好像这些都不是什么大问题,但实际体验过之后,你就会惊喜地发现,这事实上是会带来非常大不同的。

地址:http://www.git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5-Git-%E5%9F%BA%E7%A1%80#%E8%BF%91%E4%B9%8E%E6%89%80%E6%9C%89%E6%93%8D%E4%BD%9C%E9%83%BD%E6%98%AF%E6%9C%AC%E5%9C%B0%E6%89%A7%E8%A1%8C



1)不用联网就能够使用?

SVN不用联网也是能够使用的。为什么GIT还得特别强调自己不用联网就能够使用。


2)不用联网就能够使用?

这个让人实在是无法理解。不用联网就能够使用。假如不联网的时间长达1天、10天、1年甚至10年,你每天自己改动本地的。10年之后才提交,那还算是版本号控制吗?

别人都在疯狂的提交代码更新。而你却一直都是在本地编辑改动自己的,提交到本地,可是不push到远程。这样1年、10年,再联网提交过去。

git还能够奇妙到帮你自己主动合并了????????????????????????????????????????????????????






原文地址:https://www.cnblogs.com/zsychanpin/p/7126509.html