git工作流(一)——git简史与git基础

前提:现在好多开发者都用git作为版本控制,虽然很多人都在用,但是并不是所有人都知道为什么这样用。

git简史

git属于分布式版本控制,客户端并不只是提取最新版本文件快照,而是把代码仓库完整的镜像下来
每一次的提交操作都是对代码仓库的完整备份

1.git使命

Git在设计之初就是为了搞定linux内核这种巨无霸而设计的,所以制定了自己的使命

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似Linux内核一样的超大规模项目(速度和数据量)
2.git优点

Git作为分布式版本控制的代表,优点如下:

  • 本地仓库
  • 轻量级分支
  • 分布式
  • 各种工作流
3.谁在使用

经过10多年的发展,目前绝大部分开源项目都在使用Git,目前Git已经处于霸主地位

  • Git
  • Linux Kernel
  • Eclipse
  • Perl
  • Android
  • TypeScript
  • webkit

git基础

文件流转 文字描述(取)
image
文件三种状态:
==已提交(committed)==--该文件已经被安全地保存在本地数据库中 & ==已修改(modified)==--修改了某个文件,没提交保存 & ==已暂存(staged)==--已修改的文件放在下次提交时要保存的清单中
每个项目都有一个 Git 目录:
git clone 下的.git目录就是,每次克隆镜像仓库时,实际拷贝的是.git目录里面的数据
文件流转的三个工作区域:
工作目录--从项目中取出某个版本的所有文件和目录,开始后续工作
暂存区域--简单文件,一般放在.git目录中
基本的 Git 工作流程(左图):
在工作目录中修改某些文件。对修改后的文件进行快照,然后保存到暂存区域。提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
文件状态 文字描述(修)
image
工作目录下的文件状态:
已跟踪:本来纳入版本控制管理文件,上次快照中有他们的记录,工作一段时间状态可能是未更新,已修改,已放在暂缓区
未跟中(除已跟踪):既没有上次更新时的快照,也不在当前的暂存区域
第一次克隆仓库时工作目录所有的文件属于已跟踪,未修改
相关状态命令
git status检查当前文件状态
git add 跟踪新文件
cat .gitignore .[oa] Git 忽略所有以 .o 或 .a 结尾的文件
git diff查看尚未暂存的文件更新了哪些
git diff --cached 查看已经暂存起来的变化
git commit提交更新
git rm从已跟踪文件清单中移除
git mv from to移动文件===mv A B , rmA ,git addB
Git 时的文件状态变化周期(左图):
在编辑过某些文件之后,Git 将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。
存储快照 文字描述(存)
image
直接记录快照,而非差异比较:
1.git并不保存前后变化的差异数据,更像是吧变化文件作快照后,记录在一个微型文件系统中。
2.每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。
近乎所有操作都是本地执行:
在Git中的绝大多数操作都只需要访问本地文件和资源,不用连网
时刻保持数据完整性:
1.在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引
2.Git 的工作完全依赖于这类指纹字串,所以你会经常看到这样的哈希值。实际上,所有保存在 Git 数据库中的东西都是用此哈希值来作索引的,而不是靠文件名。
3.文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。
多数操作仅添加数据:
Git 操作大多仅仅是把数据添加到数据库。



更多内容请查看《几张图让你彻底弄懂git工作流(二)》 😊

文章出处:起底Git & Pro Git

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

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,500评论 0 13
  • 结果一出来,想写这篇文章的欲望就越来越强烈了。 故事很长,且慢慢听。 一开始我完全没有猜到结局。 ————————...
    风轻玥阅读 733评论 8 29
  • 小牡羊曾對晴朗夜晚家家戶戶窗口透出的暈黃燈光有著說不出的著迷,可以站在街道上就這麼直楞楞看著萬家燈火,為的...
    Xuanmany小牡羊阅读 319评论 0 1
  • 有心机的人,利用人是分阶段性的,过了利用的阶段,你在对方的眼里,什么也不是,除非你自己也有心机,把自己被人...
    烽火煤阅读 135评论 0 0
  • 人就是折腾的动物体,从农村到城市,最后还是到农村,越来越多的人开始选择或者期待选择回到农村去生活,因为城市是...
    沧海涤尘阅读 195评论 0 1