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

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这些命令都会变得容易理解。

相关文章:

Git三个主要区域介绍(工作区Working Directory、暂存区Staging Area、仓库区Repository)

文章目录Git 三个主要区域详解:Working Directory、Staging Area、Repository一、Git 的三个主要区域二、Working Directory(工作区)什么是工作区工作区特点查看工作区状态三、Staging Area(暂存区)什么是暂存区为什么…...

【AISMM模型失效预警】:为什么83%的技术团队误用该模型?资深架构师紧急纠偏指南

更多请点击: https://intelliparadigm.com 第一章:AISMM模型在技术选型中的应用 AISMM(Architecture-Intent-Scale-Maturity-Monitoring)模型是一种面向工程落地的系统化技术评估框架,专为现代云原生与AI增强型系统设…...

智元Fast API SDK:统一LLM API网关的设计、部署与Go实战

1. 项目概述:智元 Fast API SDK 是什么?如果你正在开发一个需要集成大语言模型(LLM)的应用,比如一个智能客服、一个AI写作助手,或者一个数据分析工具,你可能会立刻面临一个头疼的问题&#xff1…...

GEO 不是玄学|5 月谷歌给了明确标准✨

当下做英文独立站运营的人,几乎都能明显感知到一个变化:传统关键词排名带来的自然流量,正在逐年放缓,而谷歌 AI 生成式搜索、AI Overview 推荐流量,正在成为新的流量核心入口。 很多人接触到 GEO 优化之后&#xff0c…...

开源社区治理框架:从宪法元协议到可执行代码的实践指南

1. 项目概述:从“宪法”到“代码”的治理实验最近在开源社区里,一个名为“noopolis/constitution”的项目引起了我的注意。乍一看这个标题,你可能会联想到政治学或法学,但它的实际内涵却深深扎根于软件工程、开源协作与分布式治理…...

MelonLoader:Unity游戏模组加载器的5个关键问题与解决方案

MelonLoader:Unity游戏模组加载器的5个关键问题与解决方案 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader MelonLoa…...

避坑指南:Nebula Graph分布式集群部署后,如何解决‘Host not enough’和监控Dashboard连接失败?

Nebula Graph分布式集群部署实战:从"Host not enough"到监控Dashboard的深度排错手册 第一次在Nebula Graph集群上执行空间创建命令时,那个鲜红的"Host not enough"错误提示让整个团队陷入了短暂的沉默。作为一款性能卓越的分布式图…...

VisualCppRedist AIO:Windows系统VC++运行库的终极一站式解决方案

VisualCppRedist AIO:Windows系统VC运行库的终极一站式解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经因为"MSVCP140.dll缺…...

快手无水印视频下载神器:KS-Downloader 终极使用指南

快手无水印视频下载神器:KS-Downloader 终极使用指南 【免费下载链接】KS-Downloader 快手(KuaiShou)视频/图片下载工具;数据采集工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader 还在为下载快手视频时出…...

掌握Obsidian Tasks优先级管理:6个等级让任务管理更高效

掌握Obsidian Tasks优先级管理:6个等级让任务管理更高效 【免费下载链接】obsidian-tasks Task management for the Obsidian knowledge base. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-tasks 你是否经常在Obsidian中面对一大堆任务&#xff0…...

如何用Translumo实现游戏与视频的实时屏幕翻译:终极免费解决方案

如何用Translumo实现游戏与视频的实时屏幕翻译:终极免费解决方案 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo …...

MAA智能辅助工具:3分钟掌握明日方舟全自动游戏管理方案

MAA智能辅助工具:3分钟掌握明日方舟全自动游戏管理方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…...

如何快速配置「阅读」APP:26个高质量书源一键导入终极指南

如何快速配置「阅读」APP:26个高质量书源一键导入终极指南 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 还在为找不到稳定的小说资源而烦恼吗?「阅读」APP作为一款开源小说阅读…...

GoldHEN游戏修改工具:开源PS4游戏增强软件的完整指南

GoldHEN游戏修改工具:开源PS4游戏增强软件的完整指南 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为PS4游戏修改的复杂操作而烦恼吗?GoldHEN游戏修改…...

3步实现单电脑多人游戏:Universal Split Screen让你的聚会游戏体验升级 [特殊字符]

3步实现单电脑多人游戏:Universal Split Screen让你的聚会游戏体验升级 🎮 【免费下载链接】UniversalSplitScreen Split screen multiplayer for any game with multiple keyboards, mice and controllers. 项目地址: https://gitcode.com/gh_mirrors…...

去中心化数据同步:构建自主可控的Any-Sync系统

1. 项目概述:从“同步一切”到“掌控一切”的进化在数字生活的日常里,我们每个人都被困在无数个“信息孤岛”中。工作文档躺在公司的云盘,个人照片塞满了手机相册,读书笔记散落在不同的App,而浏览器书签则随着设备切换…...

如何免费快速恢复丢失数据:TestDisk PhotoRec终极指南

如何免费快速恢复丢失数据:TestDisk & PhotoRec终极指南 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 数据恢复和分区修复是每个计算机用户都可能遇到的紧急问题。当你不小心删除了重要文件…...

OpenClaw远程部署实战:MiniMax模型与Telegram机器人集成指南

1. 项目概述:一个可复用的远程部署技能包 如果你正在尝试将 OpenClaw 部署到一台远程的 Linux 服务器上,并且计划使用 MiniMax M2.1 模型,同时集成 Telegram 机器人,那么你很可能已经踩过或者即将踩进一些“坑”里。这个名为 op…...

为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文

MCP(Model Context Protocol)当初被设计成 AI agent 的通用集成层,但它的架构有一个根本缺陷: 你接入的每一个 MCP 服务器,都会把它的工具描述原样放进 agent 的上下文窗口,每加一个就扩大一次攻击的可能性…...

3分钟永久备份QQ空间:GetQzonehistory完整历史说说导出指南

3分钟永久备份QQ空间:GetQzonehistory完整历史说说导出指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否还记得那些年发过的QQ空间说说?那些深夜的感慨…...

Claude Code Agent 与团队系统技术文档

🏗️ 系统架构总览Claude Code CLI (src/main.tsx)├── QueryEngine # 核心 LLM 查询与模型交互├── Tool Registry # 工具注册与管理 (40 工具)├── Agent System # 智能体创建与生命周期管理└── Coordinator …...

用Python的random库写个彩票小工具,顺便聊聊伪随机数的那些事儿

用Python的random库打造智能彩票助手:从选号到伪随机数原理全解析 每次路过彩票站,总能看到有人拿着小本子记录历史开奖号码,试图从中找出某种"规律"。作为程序员,我们完全可以用Python的random模块打造一个智能选号工具…...

告别枯燥控件讲解!用WinForm手撸一个简易学生信息管理系统(C# .NET Framework)

从零构建WinForm学生信息管理系统:实战控件组合与业务逻辑 刚接触WinForm开发时,很多初学者会陷入"学了一堆控件却不知道如何串联使用"的困境。本文将带你用最基础的控件(Label、TextBox、Button等)构建一个完整的学生信…...

5分钟掌握缠论分析:ChanlunX插件让复杂技术指标一目了然

5分钟掌握缠论分析:ChanlunX插件让复杂技术指标一目了然 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 缠论分析作为技术分析中的重要理论体系,因其复杂的结构识别而让许多投资者…...

【AISMM成熟度跃迁实战】:SITS2026案例深度复盘——3个月实现组织级能力认证从L1到L4的底层逻辑

更多请点击: https://intelliparadigm.com 第一章:SITS2026案例:AISMM驱动的组织变革 在SITS2026国际航天信息系统技术峰会中,欧洲航天局(ESA)联合德国DLR与法国CNES共同实施了AISMM(Adaptive …...

在taotoken平台体验官方价折扣并快速开通服务的过程

在 Taotoken 平台体验官方价折扣并快速开通服务的过程 对于初次接触大模型 API 的开发者而言,从注册到获得一个可用的服务端点,过程的顺畅程度直接影响着后续的开发体验。本文将从一个新用户的视角,描述在 Taotoken 平台完成服务开通的整体流…...

别再死记硬背GCNConv参数了!用PyG实战CiteSeer节点分类,一次搞懂所有参数怎么用

用PyG实战GCNConv参数:从理论困惑到CiteSeer实战的深度解析 当你第一次打开PyTorch Geometric的文档,看到GCNConv那一长串参数列表时,是不是感觉每个单词都认识,但连在一起就完全不知道它们在实际项目中会产生什么影响&#xff1f…...

深入Linux内核:图解of_property_read_u32函数调用链与内存安全(内核4.14)

深入Linux内核:图解of_property_read_u32函数调用链与内存安全(内核4.14) 在Linux内核开发中,设备树(Device Tree)作为描述硬件配置的标准机制,其API的安全性和可靠性直接影响驱动程序的稳定性。…...

5分钟搭建原神私服:KCN-GenshinServer终极完全指南

5分钟搭建原神私服:KCN-GenshinServer终极完全指南 【免费下载链接】KCN-GenshinServer 基于GC制作的原神一键GUI多功能服务端。 项目地址: https://gitcode.com/gh_mirrors/kc/KCN-GenshinServer 你是否厌倦了原神官方服务器的限制,想要拥有一个…...

别再只用input()了!Python里sys.stdin.readline()的5个实战场景(含文件重定向)

解锁Python输入效率:sys.stdin.readline()的五大高阶应用场景 当你在深夜调试一段需要处理百万行数据的Python脚本时,是否曾被缓慢的输入解析速度折磨得抓狂?作为经历过无数算法竞赛和数据处理实战的老手,我必须告诉你&#xff1a…...