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

Git研究

以下命令在CentOS系统下执行

创建Git仓库

git init git-example

监控.git目录的变化情况:

watch -n .5 tree .git

写入文件内容,并把文件添加到Stage暂存区

echo 1 > t.txtgit add 1.txt

观察结果如下:objects下多出了一个d00491fd7e5bb6fa28c517a0bb32b8b506539d4d的对象

git cat-file -p d00491fd7e5bb6fa28c517a0bb32b8b506539d4d  查看对象的内容为1

git cat-file -t d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 查看对象的类型为blob

知识点:Git的Objects对象的名称d00491fd7e5bb6fa28c517a0bb32b8b506539d4d计算方式是SHA1(<对象类型> <内容长度>\0<原始内容>)

SHA1(blob 2\01) 注意:在C语言中,\0用于标记字符串的结束。(不是\0字符本身,需使用printf输出\0空字符

(printf "blob 2\0"; echo "1") | sha1sum

计算SHA1便捷指令:

(printf "blob %d\0" $(wc -c < 1.txt); cat 1.txt) | sha1sum

提交Commit文件,查看Objects变化(多了2个Object,一个tree,一个commit)

git commit -m "first commit"

Tree对象的内容:

Commit对象的内容:

最后查看 master 分支的 head 指向,可以看到指向了最新提交对应 commit object 的 key

cat .git/refs/heads/master

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

相关文章:

  • Anthropic推出Claude Code SDK,强化AI助理与自动化开发整合
  • 微信小程序调试
  • Python实例题:人机对战初体验Python基于Pygame实现四子棋游戏
  • CSS专题之flex: 1常见问题
  • 事务基础概念
  • 抽象类、普通类和接口的区别详细讲解(面试题)
  • Maven 中央仓库操作指南
  • Baklib构建企业CMS高效协作与安全管控体系
  • 开源视频监控前端界面MotionEye
  • Java基础 Day19
  • python web开发-Flask模板引擎Jinja2完全指南
  • AI扫描王APP:高效便捷的手机扫描工具,让生活更智能
  • yum命令常用选项
  • redis使用RDB文件恢复数据
  • 计算机网络学习20250524
  • vs2022 Qt Visual Studio Tools插件设置
  • WPF按钮Radius化
  • DAY01:【ML 第二弹】高等数学
  • Java 函数式接口(Functional Interface)
  • Disruptor—2.并发编程相关简介
  • HarmonyOS实战:高德地图定位功能完整流程详解
  • 《Spark/Flink/Doris离线实时数仓开发》目录
  • Linux目录介绍+Redis部署(小白篇)
  • 基于大模型的髋关节骨关节炎预测与治疗方案研究报告
  • client.chat.completions.create方法参数详解
  • 指令集架构、微架构、厂商对应关系
  • 浏览器强缓存还未过期,但服务器资源已经变了怎么办?
  • 打破产品思维--启示录:打造用户喜欢的产品--实战6
  • 动静态库--
  • 软件开发MVC三层架构杂谈