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