git基本概念
Git 的五个区域
1.workspace:工作区,就是你在电脑里能看到的目录,也是编辑文件的位置。初始化工作空间或者工作空间 clean 的时候,文件内容和 index 暂存区是一致的,随着修改,工作区文件在没有 add 到暂存区时候,工作区将和暂存区是不一致的。
2.index/stage:暂存区,实际上是一个文件(.git/index文件),暂存区有时也叫作索引(index)用于保存即将提交到文件列表的信息。所有暂时存放在暂存区中的文件将随着一个 commit 一起提交到 local repository 此时 local repository 里面文件将完全被暂存区所取代。暂存区是 git 架构设计中非常重要和难理解的一部分。
3.Repository:仓库区/版本库,也就是本地仓库(.git文件夹),保存每次文件更新的记录,包括提交人,提交时间,提交的内容等详细信息,方便追溯历史版本,里面有提交所有版本的数据,其中HEAD指向最新放入仓库的版本。git 是分布式版本控制系统,和其他版本控制系统不同的是他可以完全去中心化工作,你可以不用和中央服务器 (remote server) 进行通信,在本地即可进行全部离线操作,包括 log,history,commit,diff 等等。完成离线操作最核心是因为 git 有一个几乎和远程一样的本地仓库,所有本地离线操作都可以在本地完成,等需要的时候再和远程服务进行交互。
4.Remote:远程仓库/上游版本库,托管代码的服务器(类似github),本地仓库的一个副本,主要是方便合作伙伴之间的仓库文件同步,电脑存储空间损坏也不影响远程仓库数据。中心化仓库,所有人共享,本地仓库会需要和远程仓库进行交互,也就能将其他所有人内容更新到本地仓库把自己内容上传分享给其他人。结构大体和本地仓库一样。
5.stash:存档库。 用来存储一些我们暂时还不想添加到git记录中的内容,也是用来存储我们的修改记录;可以把它当做一个储藏室,暂时存储修改,等到需要的时候再恢复到本地工作区
远程仓库副本
项目目录包括:工作区、暂存区、本地仓库区
Git目录也就是本地仓库区,暂存区也在里面
Git 中文件的五种状态
Untracked: 未跟踪。此文件在文件夹中, 但并没有加入到git库, 不参与版本控制。通过git add 状态变为Staged。
Staged: 已暂存状态。执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态。执行git reset HEAD filename取消暂存,文件状态为Modified
Unmodify: 文件已经入库, 未修改。 即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,
如果它被修改, 而变为Modified;如果使用 git rm 移出版本库, 则成为Untracked文件
Modified: 已修改。这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态,
使用 git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
committed:已提交。表示文件已经安全地保存在本地仓库区
新建文件--->Untracked
使用 git add 命令将新建的文件加入到暂存区--->Staged
使用 git commit 命令将暂存区的文件提交到本地仓库--->Unmodified
如果对Unmodified状态的文件进行修改---> modified
如果对Unmodified状态的文件进行remove操作--->Untracked
汇总图
Git常用命令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)