当前位置: 首页 > news >正文

Git目录分析与第一个git commit文件

Git目录分析

对于Git来说,Git很大的功能就是支持版本管理以及多人协作开发,对于这些功能都是建立在git自身的目录结构来说的。所以首先我们先对Git的目录进行简单分析!

或许在之前,学过git add, git commit , git push 这样的命令,但是究竟为什么要这要用真的是了解吗。不说完全理解,至少要了解一下基本的原理

初始化git

如果想对一个目录进行版本管理的化,就需要使用命令进行对目录初始化

git init  ---初始化git目录

使用后就会在当前目录下多出一个.git目录,这个目录是隐藏

目录结构:

认识⼯作区、暂存区、版本库

这是一个简单草图,对于我们初始化后的git仓库,我们就会有三个区域,先不要管他们是干什么的,先记住有这三个区域,这是很关键的,有时候你不用先知道为什么,先这么干了,你自然会知道为什么,(这是个哲学,你很难读得懂)

工作区

工作区说的其实就是当前初始化这个目录,当然除了这个.git,也就是我们用来写代码的一个目录

暂存区

所谓暂存区就是在git下的index这个文件

版本库

现在先简单将版本库理解为这个master,其中有一个HEAD指针指向这个版本库

为版本库添加第一个文件(git add,git commit)

以添加file1文件举例来观察git的变化

git add file1

执行完之后,如果是第一个add的文件会新增index,也就是上述所说的暂存区,此时在objects目录下会也会新增一个文件。

此时这个objecs下的文件其实就是我们add的file1文件,打印一下

git cat-file -p [FILE]    ---打印gitobject里的文件

然后我们再git commit

git commit -m "[描述内容]"

然后用git log打印日志信息

这就是向git仓库添加的第一个文件,上面的HEAD->master指的是当前HEAD指针指向的是mater分支。

此时我们看一下这个master文件内容

此时这就是一个commit提交信息,在这个对象id中的内容是本次提交的文件集合

通过向版本库中添加第一个文件,就梳理了git在一次commit操作的内容。其实无非就是向objects添加了几个文件,而我们不需要关心objects中的内容,主要的还是git log中的内容,当我们每次git commit时就是去生成一个git管理的对象,在这个对象中有本次添加文件集合对象,以及上次提交的id(上面例子为首次添加所以没有显示),还有git配置信息,和对提交的描述!

http://www.xdnf.cn/news/519337.html

相关文章:

  • 20倍云台球机是一种高性能的监控设备
  • PortSwigger Labs CSRF详细教程
  • C++学习:六个月从基础到就业——C++17:string_view与filesystem
  • Vue3前端xlsx导出
  • 微服务项目->在线oj系统(Java版 - 3)
  • 王树森推荐系统公开课 排序02:Multi-gate Mixture-of-Experts (MMoE)
  • 【AI面试秘籍】| 第15期:大模型如何稳定输出合法JSON?
  • 【Linux笔记】——线程同步条件变量与生产者消费者模型的实现
  • GEE谷歌地球引擎批量下载逐日ERA5气象数据的方法
  • 等于和绝对等于的区别
  • LeetCode 394. 字符串解码详解:Java栈实现与逐行解析
  • 第5章 监控与回归测试:日志收集 · 代码覆盖率 · 静态分析 · 质量门
  • Python爬虫实战:通过PyExecJS库实现逆向解密
  • 院士方复全数学命题证明采用预期理由和循环论证以及类比的错误方法
  • web页面布局基础
  • 【动态规划】路径问题
  • STM32八股【9】-----volatile关键字
  • vim - v
  • Python数据可视化 - Pyecharts绘图示例
  • 中级统计师-统计学基础知识-第三章 参数估计
  • 【Linux】命令行参数和环境变量
  • 【PyQt5实战】五大对话框控件详解:从文件选择到消息弹窗
  • 【typenum】 11 私有模块(private.rs)
  • 【Redis实战篇】Redis消息队列
  • 10.9 LangChain LCEL革命:43%性能提升+声明式语法,AI开发效率飙升实战指南
  • 深入理解递归算法:Go语言实现指南
  • C44-练习
  • 全基因组关联研究揭示了脑淋巴活动的机制
  • Rstudio换皮:自定义彩虹括号与缩进线
  • Python Requests库完全指南:从入门到精通