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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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