鱼C论坛

 找回密码
 立即注册
查看: 37491|回复: 124

[扩展阅读] Git实用教程3:理论基础(很重要)

    [复制链接]
发表于 2016-4-21 02:55:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我觉得如果没有写上“很重要”,78.3% 的鱼油会跳过这一讲,看都不看一眼

不过既然被我骗进来了,那就认真看吧,因为这节课真 TMD 重要( ⊙ o ⊙ )啊!


Git 记录的是什么?



如果你有使用 SVN 等其他版本控制系统的经验,你应该知道它们的工作原理是记录每一次的变动。

搜狗截图20160421190833.png

差不多就是上面酱紫,每一次版本迭代,SVN 记录的是文件的变化内容。通常让我们自己来写一个版本管理工具也会首选这样的思维吧?就像写小说一样,每次就增加一个章节,修改若干错别字,最终装订成册……没必要为每次的修改都拷贝一整本书!这种存储方式也是有名堂的,叫增量文件系统(Delta Storage systems)。

而 Linus 童鞋这次却决定剑走偏锋,以一种看似“异端”的方式来处理版本迭代:

搜狗截图20160421190803.png

如上,如果每个版本中有文件发生变动,Git 会将整个文件复制并保存起来。这种设计看似会多消耗更多的空间,但在分支管理时却是带来了很多的益处和便利(分支管理我们后边会讲,不急)。

突然想到了一句话:普通的程序员是把很多的时间放在写代码和调 Bug 上,而优秀的程序员是将更多的精力放在设计上……



警告:前方高能,请先洗脸!!!

三棵树



tree.png tree.png tree.png

你的本地仓库有 Git 维护的三棵“树”组成,这是 Git 的核心框架。

这三棵树分别是:工作区域、暂存区域和 Git 仓库

搜狗截图20160421185422.png

工作区域(Working Directory)就是你平时存放项目代码的地方。

暂存区域(Stage)用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息。

Git 仓库(Repository)就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中,HEAD 指向最新放入仓库的版本(这第三棵树,确切的说,应该是 Git 仓库中 HEAD 指向的版本)。

OK,Git 的工作流程一般是酱紫:

1. 在工作目录中添加、修改文件;

2. 将需要进行版本管理的文件放入暂存区域;

3. 将暂存区域的文件提交到 Git 仓库。

因此,Git 管理的文件有三种状态:已修改(modified)、已暂存(staged)和已提交(committed),依次对应上边的每一个流程。

等等……

看到这里,有些鱼油肯定有疑惑:“你说 Git 仓库用于存放每次的版本迭代,我可以理解。但为何还要多增加一个暂存区域呢?”

我这里打个比方:像某些厂家开发一个产品,一般他们都留有一手,不会把该产品的所有特性一次性发布。通过产品的迭代,每年秋季你就可以开开心心地买到又有一两项新功能的“新”产品了。

我好像知道的太多了……

So,有时你并不想把工作目录中所有的新功能都提交到最新版本,你就可以先添加一些本次需要提交的文件到暂存区,然后从暂存区中提交它们……所以暂存区在江湖中有个外号叫“索引”(Index)。

记住这三棵树,因为后边教的所有 Git 操作基本上都是在这三棵树之间搞来搞去!

评分

参与人数 8荣誉 +24 鱼币 +13 贡献 +7 收起 理由
爱你的小优 + 5 + 5
sunnyLHS + 3 + 3 + 3
aaron.yang + 1 鱼C有你更精彩^_^
yuzaihuan + 5
moc + 2 + 2 + 2
LordHdy + 5
信天鸥WR + 1 + 1 + 1 支持楼主!
Ruide + 2 + 2 + 1 有一种漆叫“三棵树”!!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-21 08:30:31 | 显示全部楼层
本帖最后由 zooo 于 2016-4-21 10:12 编辑

沙发
鱼哥,VIM魔鬼训练营的小练习什么时候更新啊,,,
sshot-1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 08:38:43 From FishC Mobile | 显示全部楼层
不错哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 08:46:35 | 显示全部楼层
更新哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-4-21 09:23:26 | 显示全部楼层
等待更新 ~~~·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 09:38:45 | 显示全部楼层
果然厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 09:43:26 | 显示全部楼层
居然是to be continued
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 10:57:41 | 显示全部楼层
  bei pian le. hai you xue xiao de po jian pan hai you po shuru fa dou bu xiang da han zi le!   wo xiang jingjing!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-4-21 11:07:52 | 显示全部楼层
我是看到重要进来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 12:30:01 | 显示全部楼层
坐等vim课程,突然发现,这俩图动起来 ,有意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 15:26:53 | 显示全部楼层
还没更新就把人骗进来了
87.3%是怎么统计的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-21 19:09:44 | 显示全部楼层
zooo 发表于 2016-4-21 08:30
沙发
鱼哥,VIM魔鬼训练营的小练习什么时候更新啊,,,

厉害哇,过阵子我出个 2.0 版,再难点~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 22:13:46 | 显示全部楼层
来围观、 养肥了再杀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-21 22:24:17 | 显示全部楼层
如果暴力不是为了杀戮,那就将变得毫无意义
19300380059651135829659473747_950.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-4-22 11:36:21 | 显示全部楼层
期待更新!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-22 17:01:57 | 显示全部楼层
都是午夜更新
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-23 18:23:16 | 显示全部楼层
不哦错的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-24 14:08:49 | 显示全部楼层
鱼哥,svn就是把每一个添加,修改的文件放到一起,而git就是每一次更新,修改都会复制上一次的代码然后再添加,这就像软件的历史版本一样,我理解的这样对不对?@小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-25 19:23:24 | 显示全部楼层
不错不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-5 11:12:53 | 显示全部楼层
朕!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表