在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 起步 - 关于版本控制
2002 年,Linux 内核开源项目组开始启用一个专有的分布式版本控制系统 BitKeeper
来管理和维护代码。
但是到了 2005 年,开发 BitKeeper
的商业公司同 Linux
内核开源社区的合作关系结束,他们收回了 Linux
内核社区免费使用 BitKeeper
的权力。 这就迫使 Linux
开源社区(特别是 Linux
的缔造者 Linus Torvalds
)基于使用 BitKeeper
时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:
基本的 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
执行任何不可逆操作,或者让它以任何方式清除数据。 同别的 VCS
一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git
中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
安装 Git
说了那么多,现在开始动手,安装Git。
$ sudo yum install git
或者
$ sudo apt-get install git
下载安装包 Downloading Git
或者
$ brew install git
直接下载文件 Downloading Git
或者
安装 GitHub for Windows
$ git config --global user.name "name"
$ git config --global user.email example@example.com
如果使用了 --global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git
都会使用那些信息。
$ git config --list
user.name=name
user.email=example@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
若你使用 Git
时需要获取帮助,有三种方法可以找到 Git
命令的使用手册:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
例如,要想获得 config
命令的手册,执行
$ git help config
以前只是了解 Git
常见的push、commit等命令,从没有对 Git
进性过系统学习,抓紧时间学习。
目标:两周后,也就是3月28日,能熟练使用 Git
进性开发。
这一篇主要讲了些背景知识吧,下一篇就是实际的操作了。
主要从Git文档上截取自己认为重要的部分,有条件可以去仔细阅读。