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

git 中 工作目录 和 暂存区 的区别理解

比喻解释

可以把工作目录和暂存区想象成两个篮子:

  • 工作目录是你把所有东西(文件和更改)扔进去的地方。你正在修改的东西都放在这里。
  • 暂存区则是你整理好的东西放进第二个篮子,准备提交给老板(提交到仓库)。

实际操作

假设你正在写一个项目,有三个文件 file1.txtfile2.txtfile3.txt

  1. 你修改了 file1.txtfile2.txt:这时候,这些文件在工作目录中有了修改。
  2. 你运行 git add file1.txt:这将 file1.txt 的修改放入了暂存区。file2.txt 依然只有在工作目录中有修改。
  3. 你现在有两部分修改
    • file1.txt 的修改在暂存区。
    • file2.txt 的修改在工作目录,但还没暂存。
  4. 如果你运行 git commit:只有暂存区中的 file1.txt 的修改会被提交。file2.txt 的修改不会被提交,因为它还在工作目录。

git reset --hard 举例

假设上面情况中你执行了 git reset --hard

  • 工作目录file2.txt 的修改会丢失,因为它还没有被暂存。
  • 暂存区file1.txt 的修改也会被移除,因为它虽然在暂存区,但还未提交。
  • 最后:你的项目会回到上一次提交时的状态,所有未提交的修改(无论在工作目录还是暂存区)都会丢失。

在这里插入图片描述


http://www.kler.cn/a/460845.html

相关文章:

  • 【Vue3】h、ref:vue3的两个新特性(重要)-h和ref
  • 《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开
  • 信息学奥赛一本通:1311:【例2.5】求逆序对
  • Dell服务器升级ubuntu 22.04失败解决
  • Tailwind CSS 实战:响应式布局最佳实践
  • 数据挖掘——模型的评价
  • 网络安全的8个热门趋势和4个渐冷趋势
  • 2 、什么是Java中的不可变类
  • 三层交换机和三层网络结构 有什么区别和联系
  • JavaWeb Servlet的getInitParameter、业务层、控制反转IOC和依赖注入DI
  • 水上救命稻草,充气救生板的关键救援效能|深圳鼎跃
  • 滴滴数据分析80道面试题及参考答案
  • 苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序
  • 【机器学习】机器学习的基本分类-自监督学习-对比学习(Contrastive Learning)
  • 解决vue-i18n在非.vue文件中,在其他js文件中无法使用的问题
  • Ubuntu 搭建SVN服务
  • 探索基于WebAssembly的下一代前端性能优化方案
  • 如何在谷歌浏览器中使用自定义CSS
  • 在pytest钩子函数中判断Android和iOS设备(方法一)
  • 【2024年-5月-28日-开源社区openEuler实践记录】走进 GCC:开源编译器的传奇之旅
  • ACE之ACE_Message_Queue
  • 《Java核心技术II》抽取子流和组合流
  • 攻破 kioprix level 4 靶机
  • C++语言编程————C++数据类型与表达式
  • 期权懂|国内场外期权都有哪些种类?
  • MybatisPlus查询更so easy