Git三个主要区域介绍(工作区Working Directory、暂存区Staging Area、仓库区Repository)
文章目录Git 三个主要区域详解Working Directory、Staging Area、Repository一、Git 的三个主要区域二、Working Directory工作区什么是工作区工作区特点查看工作区状态三、Staging Area暂存区什么是暂存区为什么需要暂存区git add 的本质查看暂存区状态暂存区的价值1. 分批提交2. 保持 commit 干净3. 做代码 review 更容易四、Repository仓库区什么是仓库区git commit 的本质commit 后会发生什么五、三区流转完整流程1. 修改文件2. 添加到暂存区3. 提交到仓库六、三区结构图非常重要七、常见命令对三区的影响八、一个经典误区九、为什么 Git 设计成三区十、理解三区后你会真正理解 Git十一、总结Git 三个主要区域详解Working Directory、Staging Area、RepositoryGit 之所以强大很大程度上来源于它清晰的“三区模型”。很多刚接触 Git 的开发者经常会疑惑为什么git add之后还要git commit为什么文件修改后状态会变化为什么有时候代码“已经保存了”但却“没有提交”本质原因就是没有真正理解 Git 的三个主要区域。本文将系统介绍Git 三个区域分别是什么它们之间如何流转常见命令如何影响区域为什么 Git 要这样设计一、Git 的三个主要区域Git 工作流中最核心的三个区域Working Directory ↓ git add Staging Area ↓ git commit Repository分别是区域中文作用Working Directory工作区你正在修改的文件Staging Area暂存区准备提交的内容Repository仓库区Git 已保存的历史版本可以把它理解成你正在写代码 ↓ 你挑选准备提交的代码 ↓ Git永久保存版本二、Working Directory工作区什么是工作区工作区就是你当前电脑里真实可见的项目目录例如my-project/ ├── app.py ├── README.md └── requirements.txt你在 IDE 中修改文件print(hello)这些修改都发生在Working Directory工作区特点工作区中的内容可以随意修改可以删除可以新增Git 尚未正式记录此时 Git 只是知道“你改了东西”但还没有进入版本历史。查看工作区状态使用gitstatus例如modified: app.py说明工作区发生了修改三、Staging Area暂存区什么是暂存区暂存区Stage / Index是一个“提交候选区”它的作用决定哪些修改会进入下一次 commit为什么需要暂存区这是 Git 非常优秀的设计。假设你修改了app.py README.md test.py但你只想提交app.py这时gitaddapp.py只有 app.py 会进入暂存区。其他文件不会被提交。git add 的本质很多人误以为gitadd提交其实不是。真正含义是把工作区修改放入暂存区流程Working Directory ↓ git add Staging Area查看暂存区状态gitstatus示例Changes to be committed: modified: app.py说明app.py 已进入暂存区暂存区的价值暂存区允许你1. 分批提交例如第一次提交gitaddlogin.pygitcommit-mfeat: add login第二次提交gitaddpayment.pygitcommit-mfeat: add payment即使两个文件同时修改也能拆分历史。2. 保持 commit 干净好的 commit 应该一个 commit 只做一件事暂存区让你可以精确控制。3. 做代码 review 更容易review 时每个 commit 都是独立逻辑而不是“这一大堆改动到底干了啥”四、Repository仓库区什么是仓库区仓库区.git 目录中的版本数据库这里保存commit 历史branchtag给特定的commit打标签Git 对象版本快照git commit 的本质执行gitcommit-mfeat: add login本质把暂存区内容保存到 Repository流程Working Directory ↓ git add Staging Area ↓ git commit Repositorycommit 后会发生什么Git 会生成 commit SHA保存文件快照建立历史链更新当前 branch例如a1b2c3d feat:addlogin此时代码正式进入版本历史五、三区流转完整流程1. 修改文件vimapp.py进入Working Directory2. 添加到暂存区gitaddapp.py进入Staging Area3. 提交到仓库gitcommit-mupdate app进入Repository六、三区结构图非常重要┌────────────────────┐ │ Working Directory │ │ (工作区) │ └─────────┬──────────┘ │ git add ▼ ┌────────────────────┐ │ Staging Area │ │ (暂存区) │ └─────────┬──────────┘ │ git commit ▼ ┌────────────────────┐ │ Repository │ │ (仓库区) │ └────────────────────┘七、常见命令对三区的影响命令作用git add工作区 → 暂存区git commit暂存区 → 仓库区git restore恢复工作区git restore --staged从暂存区撤回git reset回退 commit / 暂存区git checkout切换版本影响工作区git diff查看工作区差异git diff --staged查看暂存区差异八、一个经典误区很多新手gitadd.之后认为“已经提交了”实际上只是进入暂存区真正进入 Git 历史的是gitcommit九、为什么 Git 设计成三区Git 之所以强于很多旧版 VCS就在于它允许“提交前精确控制”例如只提交部分文件拆分 commit组织历史清晰 review管理大型修改这都是暂存区带来的能力。十、理解三区后你会真正理解 Git很多 Git 命令本质上都在不同区域之间移动数据例如命令本质git add工作区 → 暂存区git commit暂存区 → 仓库git reset仓库 → 暂存区git restore暂存区 → 工作区git checkout仓库 → 工作区理解这一点Git 会突然变得非常清晰。十一、总结Git 三个主要区域区域作用Working Directory正在修改的文件Staging Area准备提交的内容Repository已保存历史版本核心流转工作区 ↓ git add 暂存区 ↓ git commit 仓库区真正掌握 Git 的关键不是死记命令。而是理解数据在三区之间如何流动当你理解这一点后resetcheckoutrestorerebasecherry-pick这些命令都会变得容易理解。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2591827.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!