这是崔斯特的第三十六篇原创文章
开始补基础 (๑• . •๑)
什么是Git
在Git官网上找到这样一段描述
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
重点是 version control system
(VCS),翻译过来也就是 版本控制系统
。(Pycharm中有一个)
关于版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
(我的理解就是一个东西会有不同的版本,就像吃鸡,常常更新,每更新一次就是一个新的版本,如果刚发行的版本出现毒圈不掉血,这个时候就需要版本回退。。版本控制系统就体现作用了)
版本控制系统又分为:本地版本控制系统、集中化的版本控制系统、分布式版本控制系统。
本地版本控制系统
集中化的版本控制系统
分布式版本控制系统
更多介绍可以来看 1.1 起步 - 关于版本控制
谁开发了 Git
2002 年,Linux 内核开源项目组开始启用一个专有的分布式版本控制系统 BitKeeper
来管理和维护代码。
但是到了 2005 年,开发 BitKeeper
的商业公司同 Linux
内核开源社区的合作关系结束,他们收回了 Linux
内核社区免费使用 BitKeeper
的权力。 这就迫使 Linux
开源社区(特别是 Linux
的缔造者 Linus Torvalds
)基于使用 BitKeeper
时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:
- 速度
- 简单的设计
- 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
- 完全分布式
- 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git 特点
Git 工作流
基本的 Git 工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
近乎所有操作都是本地执行
在 Git
中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。
举个例子,要浏览项目的历史,Git
不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。 你能立即看到项目历史。 如果你想查看当前版本与一个月前的版本之间引入的修改,Git
会查找到一个月前的文件做一次本地的差异计算,而不是由远程服务器处理或从远程服务器拉回旧版本文件再来本地处理。
Git 保证完整性
Git
中所有数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git
不知情时更改任何文件内容或目录内容。 这个功能建构在 Git
底层,是构成 Git
哲学不可或缺的部分。 若你在传送过程中丢失信息或损坏文件,Git
就能发现。
Git
用以计算校验和的机制叫做 SHA-1
散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git
中文件的内容或目录结构计算出来。 SHA-1
哈希看起来是这样:
24b9da6552252987aa493b52f8696cd6d3b00373
Git
中使用这种哈希值的情况很多,你将经常看到这种哈希值。 实际上,Git
数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。
Git 一般只添加数据
你执行的 Git
操作,几乎只往 Git
数据库中增加数据。 很难让 Git
执行任何不可逆操作,或者让它以任何方式清除数据。 同别的 VCS
一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git
中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。
Git 的三种状态
- 已提交(committed):数据已经安全的保存在本地数据库中。
- 已修改(modified) :修改了文件,但还没保存到数据库中。
- 已暂存(staged) :对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
安装 Git
说了那么多,现在开始动手,安装Git。
Linux
$ sudo yum install git
或者
$ sudo apt-get install git
Mac
下载安装包 Downloading Git
或者
$ brew install git
Windows
直接下载文件 Downloading Git
或者
初次运行 Git 前的配置
用户信息
|
|
如果使用了 --global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git
都会使用那些信息。
检查配置信息
|
|
获取帮助
若你使用 Git
时需要获取帮助,有三种方法可以找到 Git
命令的使用手册:
例如,要想获得 config
命令的手册,执行
$ git help config
总结
以前只是了解 Git
常见的push、commit等命令,从没有对 Git
进性过系统学习,抓紧时间学习。
目标:两周后,也就是3月28日,能熟练使用 Git
进性开发。
这一篇主要讲了些背景知识吧,下一篇就是实际的操作了。
主要从Git文档上截取自己认为重要的部分,有条件可以去仔细阅读。