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