不废话,直接上图。

由 Drawio 绘制

git使用

GIT架构

GIT的架构,可以分为几个部分:

  • 本地工作区(working directory)
  • 暂存区(stage area, 又称为索引区, index)、
  • 本地仓库(local repository)、
  • 远程仓库副本
  • 远程仓库(remote repository)。

工作区(working directory) 简言之就是你工作的区域。对于git而言,就是的本地工作目录。工作区的内容会包含提交到暂存区和版本库(当前提交点)的内容,同时也包含自己的修改内容。

暂存区(stage area, 又称为索引区index) 是git中一个非常重要的概念。是我们把修改提交版本库前的一个过渡阶段。查看GIT自带帮助手册的时候,通常以index来表示暂存区。在工作目录下有一个.git的目录,里面有个index文件,存储着关于暂存区的内容。git add命令将工作区内容添加到暂存区。

本地仓库(local repository) 版本控制系统的仓库,存在于本地。当执行git commit命令后,会将暂存区内容提交到仓库之中。在工作区下面有.git的目录,这个目录下的内容不属于工作区,里面便是仓库的数据信息,暂存区相关内容也在其中。

远程版本库(remote repository) 与本地仓库概念基本一致,不同之处在于一个存在远程,可用于远程协作,一个却是存在于本地。通过push/pull可实现本地与远程的交互;

远程仓库副本 可以理解为存在于本地的远程仓库缓存。如需更新,可通过git fetch/pull命令获取远程仓库内容。使用fech获取时,并未合并到本地仓库,此时可使用git merge实现远程仓库副本与本地仓库的合并。

.git介绍

.git目录下各个文件中所存放的内容信息:

  • HEAD 当前所在位置,其实就是工作区的在版本库中的那个提交点,最终会指向一个40位的HASH值;

  • config 当前版本库的专有配置文件,如使用命令git config user.name poloxue便会记录在此文件;

  • description 被gitweb (Github的原型)用来显示对repo的描述。

  • hooks git有可自动运行在 git 任有意义阶段的脚本hooks, 如commit/release/pull/push等状态之前或者之后。个人思考的一个用处,如pre-push可以用来强制进行代码检查。

  • index 存放暂存区(stage area)的相关信息;

  • info/exclue 可以做到和.gitignore相同的事情,用于排除不要包含进版本库的文件。区别就是,此文件不会被共享。

  • refs/heads 目录下有关于本地仓库的所有分支;

  • refs/remote 目录下有关于远程仓库的所有分支;

  • object 目录下存放的就是实际的数据文件

参考

Git 教程

Git book

系列教程

全部文章RSS订阅

Devops系列

Devops 分类 RSS 订阅


文章作者: 夜法之书
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 夜法之书 !
评论
 上一篇

阅读全文

QNAP添加man pages
QNAP添加man pages QNAP添加man pages
默认`QNAP`是不带`man`命令的,但是,作为一个`Linux`重度用户怎么能忍?得想办法安装man啊!经过一番努力,最终成功安装man pages!
2022-04-21
下一篇 

阅读全文

PMBOK指南(第6版)
PMBOK指南(第6版) PMBOK指南(第6版)
PMBOK 只是一套悬在空中的方法论,要想具体落地还需要具体的行业知识。两条腿,缺一不可!PMBOK 是基础中的基础知识,了解总是没有坏处的。是常识,不懂就没法做,但要做项目管理,光靠PMBOK远远不够。
2022-04-17
  目录