开发工具: git 11、对本地刚做出的修改、暂存和提交进行撤回

Git项目迁移、修改Git仓库地址、修改Git用户名等Git常用命令 阅读详情

场景

如果你刚对工作区的代码进行了修改,或者将部分代码加入了暂存区,或者是提交了一个commit,此时你后悔了,那么如何反悔呢?

注意:本节操作全是对本地分支的撤回操作

回顾

工作区就是开发区,刚开始工作区中会有一些文件,然后执行 git add 命令可以将工作区中的文件加入到暂存区中。接着执行 git commit 命令,可以将暂存区中的文件一次性提交到 git 仓库中,同时创建一个 commit object 指向一个 tree object,tree object 指向那些文件对应的 blob object。然后 master 指针会指向那个 commit object,HEAD 指针指向 master

对文件进行修改后,会让一个文件变成第二个版本,然后再次 git add 和 git commit,此时暂存里的文件会变成第二个版本,同时也会提交到仓库里创建一个新的 commit object,新的 commit object 会引用上一个 commit object。循环如此。

reset 撤回

假设工作区、暂存区和仓库中目前有3个版本

git reset --soft HEAD^

该命令的作用如下:

  • 在仓库中,将master分支指向上一个 commit
  • 暂存区和工作区还是停留在第三个版本

也就是说该命令相当于是撤回了 git commit 操作。

因为 git commit 操作就是将暂存区中的第三个版本放入仓库,同时创建一个新的 commit object 指向第三个版本,master 指针也指向最新的 commit object。

比如提交一次 commit
72
此时后悔了,使用 git reset --soft head^ 来撤回此次的提交
73
可以发现此时工作区的代码并没有被撤销
74
暂存区的内容也没有发生变化。

git reset HEAD^

该命令的作用如下:

  • 将 master 指针指向上一个 commit
  • 将 master 指针指向的 commit 对应的版本恢复到暂存区中

这个命令,相当于是撤回了 git commit 和 git add 操作

再执行一次 commit
72
执行 git reset head^
75
可以发现此时工作区的内容没有被还原,但是暂存区的文件被还原了。查看日志发现最近一次的commit也被撤销了
76

git reset --hard HEAD^

该命令的作用如下:

  • 将 master 指针指向上一个 commit
  • 暂存区里的内容变成上一个 commit 的版本,同时将上一个 commit 的内容恢复到工作区

这个命令彻底撤回了上次的 git commit 和 git add 操作,相当于是回退了到历史上的某一个版本
77
执行命令
78

修改了工作区中的内容,同时放入了暂存区,但是还没提交

git reset head

如果希望将暂存区里加入进去的内容撤销掉,然后在工作区里面重新修改代码。可以使用该命令
82
83

git reset --hard HEAD

将暂存区和工作区里面的内容一次性抹掉
82
84

修改了工作区中的内容放入了暂存区且提交了

比如说本来今天的代码你都提交了,但是你的leader说,这块代码不要了,此时怎么办呢?

回退版本,直接回退到没做任何代码修改的那个版本即可。

# 回退上一个版本
git reset --hard head^

# 回退到指定版本
#git reset --hard commit标识符
git reset --hard 9654657
如何在 Git 中取消暂存文件? 在Git中,取消暂存文件是一个常见的操作,用于纠正错误的暂存或更改修改意图。通过使用命令,我们可以轻松地取消暂存单个或多个文件,甚至可以撤销对文件的修改。git status:查看暂存文件的状态。git restore --staged :取消暂存单个文件。git restore --staged ...:取消暂存多个文件。:取消所有暂存文件。git restore :取消暂存并撤销对文件的修改。:撤销所有暂存文件的修改。 阅读详情

相关推荐

问题:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)

 1. 问题:Ubuntu安装软件的过程中出现依赖项的问题 “E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).” 按照指示执行如下两条命令都没有解决问题。 sudo apt-get -f install sudo apt-get --fix-broken ...

gloria_littlechi的博客 2万+

Git--本地修改文件暂存工作区和恢复至工作区

当克隆一个项目到本地之后,经常需要修改配置文件,那如何做到下次再更新代码,不重复修改配置文件。可通过暂存工作区内容进行恢复。

weixin_44688529的博客 4550

Ollama-OCR实战:5分钟搞定PDF文档转Markdown(附qwen2.5vl模型配置)

本文详细介绍了如何利用Ollama本地部署多模态大模型qwen2.5vl,结合OCR技术,实现PDF文档到Markdown的端到端智能转换。通过解析传统OCR的局限与AI方案的优势,并提供从环境搭建、提示词工程到处理复杂表格的完整实战指南,帮助用户高效构建自动化文档处理流水线,彻底重塑文档处理工作流。

yog99的博客 604

git总结--暂时保存本地修改

当远程仓库更新代码,但是本地代码还未更新上库,如果此时强制更新代码,会丢失本地新增代码,此时可以用git stash。

weixin_63566388的博客 1228

Error: dependent ‘..\..\..\..\Qt\5.15.2\msvc2019\include\QtWidgets\QMainWindow‘ does not exist.

核心问题:修改 Build 目录为源码子目录后,MSVC 编译报错,本质是变量设置异常,导致 qmake 生成多余回溯路径;临时解决:在 .pro 文件添加;最优解决:将上述配置写入 Qt 的 msvc 对应 qmake.conf 全局文件,一劳永逸;禁止 qmake 计算路径时向上回溯,避免生成异常路径。

mumufan05的专栏 877

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

Git 保存本地更改

Git 使用git stash save还是git commit来保存本地更改|极客教程。保存本地更改有两种方式:使用。

weixin_64759366的博客 1487

RLC电阻电容电感基础知识——电感篇

电感 等效电路 电感线圈由铜导线绕制,等效电路如图所示。 寄生电阻RS,包括了绕线电阻、引脚串联电阻以及磁芯损耗电阻三部分组成,其中绕线电阻与线径、长度、铜线电阻率有关;引脚电阻与引线长短、粗细有关;磁芯损耗电阻与磁芯材料特性有关,显然磁芯损耗电阻还与工作频率有关.寄生电容C主要是绕线圈与圈之间的杂散电容(为PF级),与绕线工艺有关。 等效导纳 显然: (1)当角频率ω(频率f)较小时,呈电感性. (2)当角频率ω等于ω0时,导纳Y虚部为0,呈现电阻性,即发生共振。令导纳Y虚部为0,即可求出共振角频率ω

azj2019的博客 1万+

【git】git取消提交的内容,恢复到暂存区

这里的 head~1 指的是当前分支的最新提交的前一个提交,也就是“HEAD”指向的父提交。我们在用git 的时候会经常遇到一种场景:我的某一次提交中包含了某一些不想提交的内容,但是本地已经commit了,但是还没有推到远程,有什么方法能够取消最后一次提交呢。可以完成这件事情,这个命令可以让最后一次commit取消,并且让git的head指针指向上一个提交的节点(父节点),将最新的提交退回到暂存库中。

weiambt的博客 1682

一文读懂水利无人机AI识别算法,概念、需求、解决方案

复亚智能的水利无人机AI识别算法通过先进的技术手段,为水利管理提供了高效、精准的解决方案。随着技术的不断进步和应用的深入,复亚智能的解决方案将在更多水利场景中发挥重要作用,助力智慧水利管理的全面升级。该系统通过搭载在无人机上的传感器和摄像头,结合先进的AI识别算法,实现对河道淤积、漂浮物、船只和水质污染等问题的自动检测和监控。基于大量实飞采集的数据,复亚智能的算法经过严格的训练,能够准确识别各种水利问题。复亚智能的系统具有高度的开放性和兼容性,能够与第三方平台和算法无缝对接,满足不同客户的多样化需求。

foiadrone的博客 1197

CANoe UDS $27服务DLL生成实战:从工程配置到算法修改全流程

本文详细介绍了在Vector CANoe中为UDS(统一诊断服务)的$27安全访问服务生成定制化DLL(动态链接库)的全流程。从定位官方参考工程、配置Visual Studio开发环境,到深入解析核心的GenerateKeyEx函数接口,并重点演示了如何修改和实现自定义的种子-密钥安全算法,最终完成DLL的编译、部署与CANoe集成测试,为汽车电子诊断开发提供实战指导。

star5的专栏 534

Git常用命令

git高层命令 1.初始化仓库 git init 2.查看文件的状态 git status 3.查看哪些修改还没有暂存 git diff 4.查看哪些修改以及被暂存了,但没提交 git diff --staged 5.查看提交的历史记录 git log --oneline 6.将修改添加到暂存区 git add ./ 6.删除文件,同时将修改添加到暂存区 git rm 文件名 7.重...

SongYu的博客 1万+

【ODX介绍】-5-用于Flash刷写的ODX-F文件概述

用于Flash刷写的ODX-F文件概述

「汽车电子助手」的博客 2530

【Git】 使用问题记录

上传Git时,用户名填写错误,Clone的时候,出现Incorrect username or password (access token)错误。再次克隆时,又不会弹出之前用户名mi

qq_40041064的博客 2133

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

git命令-分支:创建&提交&合并&删除-分支

文章目录git 创建分支(从拉取代码开始)拉取代码拉取依赖修改文件并提交(以readme 文件为例)配置(仅第一次建立分支需要)推送其他 git 创建分支(从拉取代码开始) 拉取代码 git clone 拉取 master 下代码; VSCode 打开项目文件; 拉取依赖 npm install 拉取项目依赖; 或者是yarn 等工具; 修改文件并提交(以readme 文件为例) RE...

璆锵鸣 450

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

GIt 只提交某个文件的修改内容 与 提交到远程分支

只提交某个文件的修改内容 蓝色表示,已加入,有改动待提交 方法1: 1、Git status 查看哪些文件被修改 2、使用Git add 路径+文件名 add后 查看状态 3、使用Git commit -m “” 提交 再push到远程仓库 4、查看远程仓库 方法二 2、直接使用commit 提交 ** git commit <file> -m"your comment" 不需要先git add,执行后,直接git push即可 查看远程仓库 方法三、 使用Idea 右击文件

BG777的博客 2518

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Git提交本地和导出diff

Git提交本地和导出diff 1.git status //查看修改 2.git fetch //拉取最新代码 3.git rebase //合并拉取的代,fetch到内容,一定要rebase。如果使用git pull 会自动合并 4.git add /view.index //写入某文件到缓存区。// add . 所有修改文件写入缓存区 5.git commit //提交到本地仓库中。 // i 插入描述内容, 按shift和:进入命令, wq 保存提交, q 退出 6.git log -2 //查看提

qq_37683424的博客 3667

vscode操作git

如何在vscode图像化界面操作git

不乖的肥猫 1万+

Linux 系统使用 git 提交代码-- git 的安装及使用(简明教学指南)

快速上手使用git,包含撤销操作, git add,git commit,git push 的撤销操作。

Jason_Math的博客 1万+

git、vim命令

1、git合并分支、撤回提交、 ssh配置; 2、vim修改、退出、复制粘贴

hpsc61的博客 428

2022 最新 Git 面试题

2022 最新 Git 面试题1.什么是Git?2.Git 工作流程3.在 Git 中提交的命令是什么?4.什么是 Git 中的“裸存储库”?5.Git 是用什么语言编写的?6.在Git中,你如何还原已经 push 并公开的提交?7.git pull 和 git fetch 有什么区别?8.git中的“staging area”或“index”是什么?9.什么是 git stash?10.什么是git stash drop?11.如何找到特定提交中已更改的文件列表?12.git config 的功能是什么?

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 5568

git撤销已经提交到远程的commit信息

第一步 需要撤回最后一次得提交记录-“需要撤回得提交记录”,如下图所示: 通过git log查看提交信息,以便获取需要回退至的版本号 jokerLover@JokerLover MINGW64 /e/CodeTest (master) $ git log commit 4a60c5e1c22c67dbdb85db2235cd5b090fb8f6d0 (HEAD -> master, origin/master) Author: XXX Date: Mon May 11 09:53:22

Restless Breeze 3210

git的一些撤销/回退操作

git的一些回退、撤销命令

weixin_46422035的博客 9810

Git学习第二天(跟踪文件、提交文件、撤回文件、、忽略文件查看历史、)

获取 Git 仓库的两种方式 ① 将尚未进行版本控制的本地目录转换为 Git 仓库 ② 从其它服务器克隆一个已存在的 Git 仓库 以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库 在现有目录中初始化仓库 如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤: ① 在项目目录中,通过鼠标右键打开“Git Bash” ② 执行 git init 命令将当前的目录转化为 Git 仓库 git init 命令会创建一个名为 .git 的隐藏目录,这个 .gi..

我要记录学习博客 1102

git 取消 所有暂存_Git版本管理完全指南—学好Git一文足矣

开心?一下image.png第一部分 命令行1、分支操作1.gitbranch创建分支2.gitcheckout-b创建并切换到新建的分支上3.gitcheckout切换分支4.gitbranch查看分支列表5.gitbranch-v查看所有分支的最后一次操作6.gitbranch-vv查看当前分支7.gitbrabch-b分支名o...

weixin_39608478的博客 139
上一篇: 开发工具: git 10、对本地不规范的提交历史进行修改和调整
下一篇: 开发工具: git 12、远程和本地同时撤回分支合并操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值