Git模型理解

背景

这可能是我第三次学习Git了。每次学习完毕,都是感觉很复杂,当时似乎觉得差不多掌握了,但是时间一长就又糊涂了,每次用git,仅仅使用其提交功能,做一个备份以便安心,其他功能不敢用。
这一次我觉得有希望彻底掌握它,因为我不学习它的命令,而是学习其运作模型,具体操作直接问AI就可以了。就像旅游一样,脑子里只需要有大概的印象和了解地名即可,具体怎么走,交给导航就可以了。

Git模型

极简模型

  • 工作区
    就是用户可视的、日常工作的普通目录和文件。
  • 仓库
    存放的是工作区的历史快照。这也是版本管理最核心的价值。一个历史快照称之为一个提交(Commit)。
  • 远程仓库
    存放在本地也不保险,仓库也可以存放到远程。

仓库模型

  • 提交(Commit)
    这个是核心概念。表示工作区的一个历史快照。每一个Commit都有一个指针,指向其父节点Commit,表示其来时路。它用一个唯一ID来标记。
  • 分支
    指向Commit的指针,默认有一个main或者master分支。
  • HEAD
    一个非常特殊的指针,一个仓库有且只有一个,下一个提交(Commit)就是从HEAD开始的。它通常指向某一个分支,这个分支称之为当前分支,它也可以只指向Commit。
  • 标签(Tag)
    它也是特殊的指针,与分支和HEAD不同,它是固定指针,一旦指向某个Commit就永远不动了。但是分支和HEAD是自动移动的,有新的提交,HEAD和当前分支就会自动移动到新的提交上。
    如果一个Commit没有任何指针指向它(包括其它Commit、Head、分支、标签),就会被垃圾回收。

其他概念

  • 暂存区
    工作区和仓库之间的一个过渡区域,也可以理解为一个特殊快照。
  • 远程仓库缓存
    远程仓库和本地仓库之间有一个远程缓存仓库,可以先把远程仓库同步到缓存仓库,这样就可以先查看缓存仓库,避免直接覆盖本地数据。

示意图

image

posted @ 2025-08-30 11:54  顺其自然,道法自然  阅读(1)  评论(0)    收藏  举报