论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
开源技术
›
开源技术
›
[Git][认识Git]具体讲解
[Git][认识Git]具体讲解
滴水恩情
金牌会员
|
2024-8-23 16:23:26
|
显示全部楼层
|
阅读模式
楼主
主题
887
|
帖子
887
|
积分
2661
1.什么是仓库?
仓库
:进⾏版本控制的
⼀个⽂件⽬录
2.认识工作区、暂存区、版本库
工作区
:在电脑上写代码或⽂件的⽬录
暂存区(stage/index)
:⼀般存放在.git目录下的index文件(.git/index)
暂存区有时也叫作索引(index)
版本库(仓库)
:.git不算⼯作区,⽽是Git的版本库
这个版本库⾥⾯的全部⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时候都可以追踪历史,或者在未来某个时候可以“还原”
⼯作区、暂存区和版本库之间的关系
在创建Git版本库时,Git会⾃动创建⼀个唯⼀的master分⽀,以及指向master的⼀个指针叫HEAD
当对⼯作区修改(新增、修改、删除)的⽂件执⾏git add下令时,暂存区⽬录树的⽂件索引会被更新
当执⾏提交操纵git commit时,master分⽀会做相应的更新
可以简单理解为暂存区的⽬录树才会被真正写到版本库中
综上
:通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件,必须要通过使⽤git add和git commit下令才气将⽂件添加到仓库中进⾏管理
是谁在维护版本呢?
objects对象库在维护,里面存放了很多git对象
修改的工作区内容会写入对象库的一个新的git对象中
每一个git对象,都描述了此次git add后所修改的内容
3.认识 .git
1.index
index:
暂存区
,git add后的内容都是添加到这里的
2.HEAD && master
HEAD:默认指向master分支的指针
$ cat .git/HEAD
ref: refs/heads/master
复制代码
默认的master分支,里面生存着
最新的
commit id
$ cat .git/refs/heads/master
d74fd33ce217d9d6aefab18c84a3c4fb542d293e
复制代码
3.objects
objects为Git的对象库,⾥⾯包含了创建的各种版本的库对象及内容
当执⾏git add时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的对象中,位于".git/objects"⽬录下
objects
├── 78
│ └── c38e74ed7bad28f712b4b214fcc1f1dc2814b6
├── 7a
│ └── 535a4f3e6dba8a8dbcea9d7e3ee3c395aeabf3
├── 84
│ └── ef513c15700a4fc435dd6e6ac284a49d7901ac
├── 8a
│ └── e26cc86d8c9213c406383181dad60050e15df6
├── 99
│ └── a6aad83baf0a7fdb6cf394f11ccde7845bcb1d
├── d7
│ └── 4fd33ce217d9d6aefab18c84a3c4fb542d293e
├── info
└── pack
复制代码
查找object时要将commit id分成2部分,
前2位是⽂件夹名称,后38位是⽂件名称
检察版本库对象的内容
:git cat-file
$ git cat-file -p d74fd33ce217d9d6aefab18c84a3c4fb542d293e
tree 84ef513c15700a4fc435dd6e6ac284a49d7901ac
parent 7a535a4f3e6dba8a8dbcea9d7e3ee3c395aeabf3
author DieSnowK <23336666@qq.com> 1721717265 +0800
committer DieSnowK <23336666@qq.com> 1721717265 +0800
666.txt
复制代码
此中tree 84ef513c15700a4fc435dd6e6ac284a49d7901ac
$ git cat-file -p 84ef513c15700a4fc435dd6e6ac284a49d7901ac
100644 blob 99a6aad83baf0a7fdb6cf394f11ccde7845bcb1d 233.txt
100644 blob 78c38e74ed7bad28f712b4b214fcc1f1dc2814b6 666.txt
复制代码
恣意检察此中的一个文件,发现是对每个文件做的修改,被Git记录了下来
$ git cat-file -p 99a6aad83baf0a7fdb6cf394f11ccde7845bcb1d
SnowK
复制代码
4.总结
index:暂存区,git add后会更新该内容
HEAD:默认指向master分⽀的⼀个指针
refs/heads/master:⽂件⾥生存当前master分⽀的最新commit id
objects:包含了创建的各种版本库对象及内容
可以简单理解为存放了Git维护的全部修改
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
滴水恩情
金牌会员
这个人很懒什么都没写!
楼主热帖
体系集成商重返黄金年代
ubuntu 20.04 安装好搜狗输入法无法输 ...
使用扩展函数方式,在Winform界面中快 ...
SFSafariViewController 加载的网页与 ...
接入Harbor私有仓库
一次服务器被入侵的处理过程分享 ...
【C++】STL——vector模拟实现
未来数据库需要关心的硬核创新 ...
「年终总结」写了 3 年文章的我,昨天 ...
Linux 进程概念 (上)
标签云
挺好的
服务器
快速回复
返回顶部
返回列表