打算花一个半月的时间学完Git。宏观上有更深的认识。

参考:

Pro Git(中文版)

一、历史

本地版本控制系统

最原始的做法。复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。

缺点:无法撤消恢复。无法协同工作。

集中化的版本控制系统

为解决多人协同工作,出现了集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )

代表:CVS,Subversion 以及 Perforce 等

原理:使用单一的集中管理的服务器,保存所有文件的修订版本

缺点:一旦中央服务器出现故障,所有人无法提交更新,有丢失所有历史更新记录的风险

分布式版本控制系统

为解决上面的问题,于是出现了分布式版本控制系统( Distributed Version Control System,简称 DVCS )

代表:Git,Mercurial,Bazaar 以及 Darcs 等

每个客户端都存有一份完整的代码仓库,就算中央服务器发生故障,可以用任何一个本地仓库恢复。

关于仓库的概念,下回分解。

二、Git基础

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。

Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。

其实的优点,即使不联网,我们也可以在本地提交,等到联网的时候再push到远程服务器上。

在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。

三、安装

安装git非常简单,在Ubuntu上面直接运行

sudo apt-get install git

Windows上要安装http://msysgit.github.com/

四、配置

git config --global user.name "John Doe"

加--global   表示全局

加--system 表示系统级

这是一个优先级的问题,如果项目中没有设置username信息,就会使用全局的设置,如果没有设置全局变量则最后使用系统级的设置。

全局配置信息是个文件,Windows下,存放在家(HOME)目录的隐藏文件.gitconfig中。

最后

介绍一个非常有用的命令。

要检查已有的配置信息

git config --list

最新文章

  1. Using Celery with Djang
  2. Node.js学习笔记(一)
  3. RabbitMQ模拟器使用方法
  4. 7.2.3 使用RenderTargetBitmap类生成图片
  5. [C#] 與Android共舞–手機post資料給Server (转帖)
  6. [Stanford 2011] Views 知识点
  7. nodpad++正则替换
  8. ASP.Net MVC4 登录
  9. 学习Java Web开发
  10. Android中为APP创建快捷方式的原理(自己的理解)
  11. golang入门--一个简单的http client
  12. Access中的SELECT @@IDENTITY
  13. UIPickerView(选择控制器) 自学之初体验
  14. 从头开始学JavaScript (八)——变量
  15. Vue路由(组件)懒加载(异步)
  16. byte数组和int之间相互转化的方法
  17. 可遇不可求的Question之skip-name-resolve模式篇
  18. Vue.js表单校验;动画指令;避免内存泄露。
  19. 20145307陈俊达《网络对抗》Exp7 网络欺诈技术防范
  20. 【第二十五章】 springboot + hystrixdashboard

热门文章

  1. SQL rownum的用法
  2. TraceWrite waittype
  3. 【转】Android学习系列(39)--Android主题和样式之系统篇(上)
  4. 利用MSF批量打RMI漏洞
  5. 使用腾讯云mysql的一下小坑
  6. 使用@AspectJ注解开发Spring AOP
  7. libstagefright 音视频同步方案
  8. java 编写小工具 尝试 学习(三)
  9. 用cookie实现记住用户名和密码
  10. springboot自定义异常页面