一、分布式版本控制系统
客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份.
由于每一个人在本地都拥有一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。只有在成员交互的时候,将本地repositories推送到远程repositories即可。
二、Git
1、git的历史背景
git作为一个分布式版本控制系统,最初由Linux的早期作者Linus Torvalds创作,用于Linux内核的维护工作(最初使用BitKeeper,但是现在人家不给你免费使用了>o<),所以开发了一套自己的分布式版本控制系统,其系统开发的目标如下,这也是git的非常出色的几个优势:
• 简单的设计
• 对非线性开发模式的强力支持(允许上千个并行开发的分支)
• 完全分布式
• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
2、git 基础知识
git 在版本控制时将变化的文件进行快照,并记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一连接。
3、git的优势
1)近乎所有操作都可本地执行
在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,Git 一无所知。这项特性作为 Git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。
在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中,已提交表示该
4、安装git(Windows)
$ git config --global user.name "John Doe"
$ git config --global user.email "johndoe@example.com"
$ git config --global core.editor emacs
$ git config --global merge.tool vimdiff
git config --list
$ git help