地址:https://git-scm.com/book/zh/v2/
关于版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
本地版本控制系统:
其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。 RCS 的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。
集中化的版本控制系统:
接下来人们又遇到一个问题,如何让在不同系统上的开发者协同工作? 于是,集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。
分布式版本控制系统:
于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
GIT是什么
直接记录快照,而非差异比较
近乎所有操作都是本地执行
Git 保证完整性
Git 一般只添加数据
三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)
GIT安装
请移步git安装:https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
可能在make all doc info的 时候会报错误。
需要安装依赖:
yum install gcc gcc-c++ autoconf make automake wget -y
yum install cpio texinfo sgml2xml openjade perl-ExtUtils-MakeMaker -y
yum install asciidoc xmlto docbook2X -y
yum install cpio texinfo sgml2xml openjade perl-ExtUtils-MakeMaker -y
yum install perl curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
获取帮助
git help
如:git help config
git -h
如:git add -h
配置
查看所有配置及他们所在文件:git config --list --show-origin
查看值最后生效的配置文件:git config --show-origin rerere.autoUpdate
配置用户名和邮箱:
git config --global user.name “John Doe”
git config --global user.email johndoe@example.com
(注释:如果使用了 --global 选项,那么该命令只需要运行一次)