首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Git缓冲区理解:`index`,`add`和`reset`,`staged`和`unstaged`

Git缓冲区理解:`index`,`add`和`reset`,`staged`和`unstaged`

作者头像
张哥编程
发布2024-12-07 16:36:08
发布2024-12-07 16:36:08
17000
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
在git里面,有一个叫index的区域,你把东西加到那里叫add, 把东西再从哪里撤回来叫reset;已经在里面的我们形容它是staged,还没有加进去的我们形容它是unstaged。

其实index区就是一个纯粹的缓冲区,也叫staging area,是正式提交之前给我们的一个缓冲,还有犹豫的余地。因为一旦正式commit提交了,你所有还没解决的愚蠢的傻事都会公开,即使能覆盖能撤销,但还是掩藏不了历史。

自己做的话无所谓其实,但是如果是团队合作的话,每次commit都是一次公开。 其实形容的话,就相当于老板让你做个项目,你肯定不可能做了一点东西就跑到老板办公室去送一趟文件,应该会先把做好的放在桌子的上那个小文件架上。然后那个文件架就叫index。

参考:Git 基础 - 撤消操作 撤销add

指定文件

$ git reset HEAD file.txt

全部撤销

$ git reset HEAD . 撤销修改

指定文件

$ git checkout -- file.txt

全部撤销

$ git checkout -- . 删除commit

一旦commit,就不能撤销!会永远留在历史里面。 修改commit

一般流程如下: $ git commit -m '首次提交'

git add forgotten_file git commit --amend 恢复某个文件到以前版本

用git log得知某个版本SHA后,恢复readme.md这个文件

$ git reset <SHA> readme.md

切换到该版本

$ git checkout readme.md

把变动提交

$ git add . && git commit

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指定文件
  • 全部撤销
  • 指定文件
  • 全部撤销
  • 用git log得知某个版本SHA后,恢复readme.md这个文件
  • 切换到该版本
  • 把变动提交
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档