想把自己的源代码保存到云端。想到了用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还能够奇妙到帮你自己主动合并了????????????????????????????????????????????????????

Git版本号控制 为什么那么复杂 头大 (忍不住强烈吐槽)的更多相关文章

  1. 在项目开发中使用Git版本号控制工具以提高效率

    安装Git(linux centos平台) 源代码方式安装 1.装依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel ...

  2. Git版本号控制:Git分支处理

    http://blog.csdn.net/pipisorry/article/details/46958699分支的意义创建分支能够避免提交代码后对主分支的影响,同一时候也使你有了相对独立的开发环境. ...

  3. Git版本号控制

        Git是分布式版本号控制系统.与SVN类似的集中化版本号控制系统相比.集中化版本号控制系统尽管可以令多个团队成员一起协作开发,但有时假设中央server宕机的话,谁也无法在宕机期间提交更新和协 ...

  4. Git(一):Git与版本号控制简单介绍

    Intro 版本号控制系统是什么      版本号控制系统(Version Control System,VCS)能够帮助我们记录和跟踪项目中各文件内容的改动变化.它能够帮我们保存项目的各个版本号.以 ...

  5. eclipse中使用git进行版本号控制

    协作开发的时候没有版本号控制是非常痛苦的事情,使用git能够非常好的完毕这项任务,由于非常多的开源码都在github上公布,因此学会使用git是非常重要的一项技能. 这篇写的是在eclipse下使用的 ...

  6. 版本号控制-git(二)

    上次文章给大家介绍了Git的一些基本知识(http://www.cnblogs.com/jerehedu/p/4582398.html).并介绍了使用git init初始化化版本号库.使用git ad ...

  7. 云盘+Git GUI实现云盘文件版本号控制

    以下介绍操作细节 1.先下载Git GUI 下载地址:http://msysgit.github.io/       再下载百度云网盘 下载地址:http://pan.baidu.com 接下来就是安 ...

  8. 版本号控制-GitHub

    前面几篇文章.我们介绍了Git的基本使用方法及Gitserver的搭建.本篇文章来学习一下怎样使用GitHub. GitHub是开源的代码库以及版本号控制库,是眼下使用网络上使用最为广泛的服务,Git ...

  9. [Android]egit取消文件版本号控制

    开发项目,多人合作开发变得越来越重要了,在此同一时候,使用git作为协同工具也是越来越多.在此.介绍一下egit取消文件版本号控制的方法. (egit即为eclipse中的git插件) 1.打开Nav ...

随机推荐

  1. [译]ASP.NET Core 2.0 视图组件

    问题 如何在ASP.NET Core 2.0中使用视图组件? 答案 新建一个空项目,修改Startup类并添加MVC服务和中间件: public void ConfigureServices(ISer ...

  2. Python爬虫入门:Urllib库的高级使用

    1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...

  3. js实现本地时间同步

    HTML代码 <html> <head> <title>时间</title> <meta charset="utf-8"> ...

  4. Java实现TFIDF算法

    算法介绍 最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理. 关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013 ...

  5. SSM :MyBatis与Spring的整合

    MyBatis与Spring的整合 一:Spring整合MyBatis的准备工作: (1.)在项目中加入Spring,ByBatis及整合相关的jar文件 (2.)建立开发目录结构,创建实体类 (3. ...

  6. 老男孩Python全栈开发(92天全)视频教程 自学笔记03

    day3课程目录: pyhton的历史 32bit和64bit系统的区别 Python版本的选择 第一个pyhton程序 文件后缀名及系统环境变量的介绍 pyhton程序的执行和其他编程语言的简单对比 ...

  7. python3学习笔记(3)

    一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用f2 = 123不可以被调用2.chr()和ord()chr()将ascii码转换成字符,or ...

  8. 初试pyspider

    灵感来源: https://zhuanlan.zhihu.com/p/31421316 抓取页面: https://www.nvshens.com/tag/new/ 页面分析: 首页获取所有图片详情页 ...

  9. GameObject类及相关API

    GameObject.Find(String name):查找一个名为name的游戏物体,并返回这个游戏物体,找不到返回null.(不到万不得已,不要在Update()中使用,建议在Start()中使 ...

  10. cardview和Palette,ActionBar颜色随图改变

    CardView是一个控件,Palette是取色工具(工具类),本文会对他们进行比较细致的介绍,相信机制的各位看完一定轻而易举地实现ActionBar随图改变的特效. 首先看一下效果图: Gradle ...