Git基础

Git究竟是怎样的一个系统呢?若你理解Git的思想和基本原理,用起来就是知其所以然,游刃有余。开始学习Git的时候,你要分清楚和其他版本系统的认识,比如Subversion等,避免出现使用时发生混淆。

直接记录快照,而非差异性比较

Git和其他版本控制系统(Subversion等)的主要差别在于Git对待数据的方法。从概念上来区分,其他版本控制系统以文件变更列表的方式存储信息。这类系统(CVS、Subversion等)将它们保存的信息是基于一组文件和每个文件随着时间逐步累积的差异。

存储的每个文件与初始版本的差异

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做一些不可逆操作。同别的 VCS 一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git 中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。

三种状态

Git有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交,表示数据已经安全的保存到本地数据库中了。已修改,表示数据已经修改,还没有保存到本地数据库中。已暂存,表示对一个已修改文件的当前版本做了一个标记,使之包含在下次提交的快照中。

工作目录、暂存区域和Git仓库

Git仓库目录是Git用来保存项目的元数据和对象数据库的地方。这是Git的重要组成部分,从其他计算机克隆仓库时,拷贝的就是这里的数据。

工作目录是对项目的某个版本独立提取出来的内容。这些从Git仓库的压缩数据库中提取出来的文件,放到磁盘上面供你使用和修改。

暂存区域是一个文件,保存下次将提交的文件列表信息,一般在Git仓库目录中。有时候也被称作"索引"。

基本的Git工作流程如下

1. 在工作目录中修改文件。

2. 暂存文件,将文件的快照放到暂存区域。

3. 提交更新,找到暂存区域的文件,将快照永久保存到Git仓库目录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容