git起步、git配置

版本控制

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。通过版本控制你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。

Git是目前世界上最先进的分布式版本控制系统。

Git是分布式版本控制系统
集中式VS分布式:
集中式版本控制系统,版本库集中存放在中央服务器,必须要联网才能工作,没有历史版本库。
分布式版本控制系统,没有“中央服务器”,每个开发人员电脑上都有一个完整的版本库。
分布式优势:安全性更高,无需联网,若“中央服务器”故障,任何一个其他开发者本地都有最新的带历史记录的版本库。
主要区别在于历史版本库的存放,集中式历史版本只存在于中央服务器,而分布式中每个本地库都有历史记录存放。


git起步、git配置_第1张图片
image.png

Git:只关心文件数据的整体是否发生变化,并不保存这些前后的差异数据。实际上,Git更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为了提高性能,若文件没有变化,Git不会再次保存,而只是对上次保存的快照作一链接。

commit tree blob 三个对象之间的关系:

git起步、git配置_第2张图片
image

一次 commit id 对应一棵树(tree),一次快照,整个项目的快照,包含了哪些文件夹(tree)、哪些文件(blob)。blob 可以看做是一个文件,但是和文件名是没关系的,不管文件名是什么,只要文件内容相同,就是一个 blob,大大节约了存储空间。
git三种状态

三种状态
对于任何一个文件,在Git内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
文件流转的三个工作区域:Git的本地数据目录,工作目录以及暂存区域。
每个项目都有一个git目录,它是Git用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。
从项目中取出摸个版本的所有文件和目录,用以开始后续工作的就叫做工作目录。这些文件实际上都是从git目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。
所谓的暂存区域只不过是个简单的文件,一般都放在git目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。

git的配置

git config --list   //查看一下git的配置列表
git config --global user.name  "username"  
git config --global user.email  "email"     //将username和email换成github(或者其它类似远程仓库)的用户名和密码。(注意:局部变量覆盖全局变量)

生成ssh

ssh-keygen -t rsa

此文件夹中以下两个文件


image.png

你可能感兴趣的:(git起步、git配置)