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,尽管能够编辑文件,但无法提交更新,由于数据库在网络上。看上去好像这些都不是什么大问题,但实际体验过之后,你就会惊喜地发现,这事实上是会带来非常大不同的。
1)不用联网就能够使用?
SVN不用联网也是能够使用的。为什么GIT还得特别强调自己不用联网就能够使用。
2)不用联网就能够使用?
这个让人实在是无法理解。不用联网就能够使用。假如不联网的时间长达1天、10天、1年甚至10年,你每天自己改动本地的。10年之后才提交,那还算是版本号控制吗?
别人都在疯狂的提交代码更新。而你却一直都是在本地编辑改动自己的,提交到本地,可是不push到远程。这样1年、10年,再联网提交过去。
git还能够奇妙到帮你自己主动合并了????????????????????????????????????????????????????
Git版本号控制 为什么那么复杂 头大 (忍不住强烈吐槽)的更多相关文章
- 在项目开发中使用Git版本号控制工具以提高效率
安装Git(linux centos平台) 源代码方式安装 1.装依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel ...
- Git版本号控制:Git分支处理
http://blog.csdn.net/pipisorry/article/details/46958699分支的意义创建分支能够避免提交代码后对主分支的影响,同一时候也使你有了相对独立的开发环境. ...
- Git版本号控制
Git是分布式版本号控制系统.与SVN类似的集中化版本号控制系统相比.集中化版本号控制系统尽管可以令多个团队成员一起协作开发,但有时假设中央server宕机的话,谁也无法在宕机期间提交更新和协 ...
- Git(一):Git与版本号控制简单介绍
Intro 版本号控制系统是什么 版本号控制系统(Version Control System,VCS)能够帮助我们记录和跟踪项目中各文件内容的改动变化.它能够帮我们保存项目的各个版本号.以 ...
- eclipse中使用git进行版本号控制
协作开发的时候没有版本号控制是非常痛苦的事情,使用git能够非常好的完毕这项任务,由于非常多的开源码都在github上公布,因此学会使用git是非常重要的一项技能. 这篇写的是在eclipse下使用的 ...
- 版本号控制-git(二)
上次文章给大家介绍了Git的一些基本知识(http://www.cnblogs.com/jerehedu/p/4582398.html).并介绍了使用git init初始化化版本号库.使用git ad ...
- 云盘+Git GUI实现云盘文件版本号控制
以下介绍操作细节 1.先下载Git GUI 下载地址:http://msysgit.github.io/ 再下载百度云网盘 下载地址:http://pan.baidu.com 接下来就是安 ...
- 版本号控制-GitHub
前面几篇文章.我们介绍了Git的基本使用方法及Gitserver的搭建.本篇文章来学习一下怎样使用GitHub. GitHub是开源的代码库以及版本号控制库,是眼下使用网络上使用最为广泛的服务,Git ...
- [Android]egit取消文件版本号控制
开发项目,多人合作开发变得越来越重要了,在此同一时候,使用git作为协同工具也是越来越多.在此.介绍一下egit取消文件版本号控制的方法. (egit即为eclipse中的git插件) 1.打开Nav ...
随机推荐
- IDEA搭建SSMM框架(详细过程)
IDEA搭建SSMM框架(详细过程) 相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij ...
- [转]我在面试.NET/C#程序员时会提出的问题
http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.NET( ...
- Winform界面中主从表编辑界面的快速处理
在Winform开发中,我们往往除了常规的单表信息录入外,有时候设计到多个主从表的数据显示.编辑等界面,单表的信息一般就是控件和对象实体一一对应,然后调用API保存即可,主从表就需要另外特殊处理,本随 ...
- 浅谈Maven
最近的有用到Maven 所以就大概跟大家谈一下Maven 1什么是Maven? Maven我个人的理解就是项目架包管理 通俗易懂的来说就是管理配置你项目中的所有jar包的 废话不多说 Maven去ht ...
- iPhone X 网页导航概念
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 在移动应用程序设计中,选择汉堡菜单按钮还是标签栏作为导航一直是个古老的争论话题.目前看来,由于 ...
- Ansible(一) 配置安装
puppet ruby开发 salt python开发,有客户端,使用Rabbitmq消息队列,支持并发,在机器数量很多时效果比ansible好. ansible python开发, 没有客户端,基于 ...
- webpack 3.X学习之初始构建
webpack是什么 webpack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并 ...
- Float精度丢失
BigDecimal _0_1 = new BigDecimal(0.1); BigDecimal x = _0_1; for(int i = 1; i <= 10; i ++) { Syste ...
- 用shape画内圆外方,形成一个圆形头像
很多人都有过这样的经历,想要在自己写的程序里,上传一张随便大小形状的照片在程序里显示都是圆形照片,或者是方形,或者是三角形,但是写代码又非常麻烦,这里就有一个也可以实现一样效果的方法,那就是用 lay ...
- QTP生成随机数字+字母
以下函数实现随机生成17位数(包括字母和数字),仍有改进的空间,可根据具体要求适当修改 Dim targetstring '调用返回函数给变量.Function过程通过函数名返回一个值 targets ...