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

reset命令

作用:将当前 HEAD 重置为指定状态

Git 的四个区域

  • Workspace:工作区,就是你平时存放项目代码的地方;
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index);
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换;
add
commit
push
checkout/merget
fetch/clone
push
Workspace
index
Repository
Remote

常用命令

命令一

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit_id> | HEAD^]
  • –soft

    不删除工作区改动代码,撤销 commit ,不撤销 git add .

    会在重置 HEADbranch 时,保留工作目录暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区。

  • –mixed

    这是默认动作

    重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。

  • –hard

    重置位置的同时,直接将 working Tree工作目录index 暂存区repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。

  • –merge

    撤销合并(merge)/修订(commit)/变基(rebase)操作,在需要提供ORIG_HEAD(git log 获取的 commit_id)。

    • 在执行撤销合并/ 变基时,效果等同于撤销合并(git merge --abort)/撤销变基(git rebase --abort)。
    • 在执行修订,效果等同于强制撤销(git reset --hard <commit_id>)
  • –keep

    重置分支到指定的提交,保留当前工作目录暂存区的更改。若重置Reset节点内容与工作目录和暂存区内容存在冲突时,该命令无法执行

命令二

git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>...]

使用**-p交互性的有选择性地对块进行reset**,这是与git add -p相反的。

命令三

git reset [-q] [<tree-ish>] [--] <pathspec>...
git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]

匹配pathspec所有路径重置索引条目到git 树的状态。

选项

  • [-q, --quiet, --no-quiet]

    安静的执行,只报告错误

  • [–pathspec-from-file=]

    从文件读入命令行参数

  • --pathspec-file-nul

    在**–pathspec-from-file**模式换行符指定为NUL

  • <pathspec>...

    指定操作的路径或者文件。

  • <commit_id>

    代表某个版本的 commit_id,可通过 git log 或在 git 平台的 history 中查看。

  • HEAD^

    代表HEAD上一个版本,也可以写成 HEAD~1。如果进行了 2 次 commit,想都撤回,可以使用 HEAD~2

参考

git-reset Document
Git Reset:撤销与回溯,解读5种模式的妙用

http://www.lryc.cn/news/277858.html

相关文章:

  • Linux内核--进程管理(十二)LinuxIO基础知识与概念
  • gem5学习(11):将缓存添加到配置脚本中——Adding cache to the configuration script
  • 上海雏鸟科技无人机灯光秀跨年表演点亮三国五地夜空
  • 学生备考护眼台灯怎么样选择?2024五款好用台灯安利
  • Java学习,一文掌握Java之SpringBoot框架学习文集(6)
  • 美团点评秋招前端测评分享
  • docker安装nodejs,并更改为淘宝源
  • Vue中的class和style绑定
  • 出版实务 | 出版物的成本及其构成
  • docker 部署项目的操作文档,安装nginx
  • spring boot 源码解读与原理分析
  • Python基础(二十四、JSON和pyecharts)
  • Java 并发之《深入理解 JVM》关于 volatile 累加示例的思考
  • GPM合并资料整理-GEM部分
  • STM32使用1.69寸液晶显示模块使用缓冲区实现快速刷新全屏显示字符串功能
  • SpringBoot AOP
  • 鉴源论坛 · 观模丨浅谈Web渗透之信息收集(下)
  • 构建自己的私人GPT-支持中文
  • php将文本内容写入一个文件(面向过程写法)
  • SPDK As IPU Firmware
  • 快速删除node_modules文件夹
  • Mac安装nvm以及使用nvm安装node
  • vue element-ui的table列表中展示缩略图片效果实例
  • C/C++动态内存管理
  • 矩阵中的最长递增路径
  • vue2 element 弹出框拖拽会出现一层阴影问题
  • idea git回滚之前提交记录
  • 什么是Modbus协议?
  • 222.【2023年华为OD机试真题(C卷)】分配土地(扫描线算法-JavaPythonC++JS实现)
  • Linux网络编程(一-网络相关知识点)