1.Git简介
本文最后更新于:2021年10月1日 晚上
Git简介
Git起源
- 在2002年以前,世界各地的志愿者把源代码文件通过==diff[1]==的方式发给Linus,然后由Linus本人通过手工方式合并代码
- 到了2002年,Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统
- 2005,Linux社区牛人试图破解BitKeeper的协议,BitMover公司要收回Linux社区的免费使用权
- Linus花了两周时间自己用C写了一个分布式版本控制系统——Git!一个月之内,Linux系统的源码已经由Git管理了
版本控制系统[2]
- 集中式:
- 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
- 集中式版本控制系统最大的毛病就是必须联网才能工作,受限于网速
- 分布式:
- 分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,工作的时候,就不需要联网
- 个人的对库文件的修改只需通过局域网推送给对方即可看到
- 分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已
- Git是目前世界上最先进的分布式版本控制系统[3]
Git 特性
- 直接记录快照、而非差异比较
- Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异
- 实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接
- 近乎所有的操作都是本地执行
- 时刻保持数据的完整性
- 在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引
- Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个 SHA-1 哈希值,作为指纹字符串。该字串由 40 个十六进制字符(0-9 及 a-f)组成。所有保存在 Git 数据库中的东西都是用此哈希值来作索引的,而不是靠文件名
- 多数操作仅添加数据
安装Git
-
Linux:直接用命令行安装
-
Win:在官网下载安装程序,并配置机器名字和地址
-
具体操作互联网搜索即可
-
第一次安装需要配置
1
2git config --global user.name "xxx"
git config --global user.email "email@example.com"
版本库
- 版本库(repository):可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
- 工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。
- 已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。
- 而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域
操作过程
git init
:在指定目录中使用,可以将该目录变成Git可以管理的仓库- 会在该目录下生成一个
.git
目录,是Git用来跟踪管理版本库的,一般不需改动 - 该仓库是一个本地仓库
- 会在该目录下生成一个
git add xxx
:把位于指定目录的文件添加到仓库git commit -m "xxx"
:将文件提交到仓库- 一次commit会将之前所有的add都会提交
-a
,自动将所有已跟踪的文件暂存起来一并提交
扩展阅读
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!