git提交错了?直接删除提交记录

使用git revert撤销提交

revert的英文释义是回复、恢复(到原来的状态)

作用

git revert 是 Git 中用于撤销一个或多个提交的命令,但是会保留历史记录。它创建一个新的提交,该提交是对原提交的相反操作,以撤销原提交的更改。通过 git revert 撤销提交,可以保持历史记录的完整性,不会修改已经共享的提交历史。

语法

撤销单个提交:

java 复制代码
git revert <commit-hash>

这会创建一个新的提交,用于撤销指定的提交 的更改。

撤销多个提交:

java 复制代码
git revert <commit-hash1> <commit-hash2> ...

这会为每个指定的提交创建一个新的撤销提交。

撤销最近的提交:

java 复制代码
git revert HEAD

撤销某个范围内的提交:

java 复制代码
git revert <commit-hash1>^..<commit-hash2>

这会撤销从 (不包括)到 (包括)范围内的所有提交。

撤销提交时,Git 会打开一个文本编辑器,让你输入撤销提交的信息。你可以修改默认的提交信息,然后保存并关闭编辑器。

使用git reset撤销提交

reset的含义:重置!现在,我们先看看git reset的作用。

作用

git reset 用于移动 HEAD 指针并可选地更改暂存区和工作目录的状态。它是一个非常强大的工具,常用于撤销提交、取消暂存文件、修改提交内容等操作。

撤销提交,保留修改

git reset --soft HEAD~1

这会将 HEAD 指向的分支的最新提交撤销掉,并保留所有更改在工作目录中。这样你就可以重新提交,并修改提交信息。

撤销提交,取消暂存的文件

java 复制代码
git reset HEAD~1

这会将 HEAD 指向的分支的最新提交撤销掉,并将暂存区的文件取消暂存,但保留在工作目录中。这样你可以重新选择要暂存的文件。

撤销提交,丢弃修改

java 复制代码
git reset --hard HEAD~1

这会将 HEAD 指向的分支的最新提交撤销掉,并丢弃所有更改,包括暂存区和工作目录中的文件。这样你就可以完全回到上一个提交的状态。

将 HEAD 指针移动到指定的提交

java 复制代码
git reset --hard <commit-hash>

这会将 HEAD 指针移动到指定的提交,并丢弃所有更改。这可以用来回滚到历史提交状态

撤销实操

由于本地没有其他修改,暂存区也没有文件,因此,使用

java 复制代码
git reset HEAD~1

撤销实操

由于本地没有其他修改,暂存区也没有文件,因此,使用

java 复制代码
git reset HEAD~1

但是,我们刚才的误操作,导致有两条不应该出现的操作记录

所以,我们HEAD指针应该向下移动2个

java 复制代码
git reset HEAD~2

命令行输入后,我们就会发现本地代码已经恢复到没有提交这两个记录前的状态了!

但云端的记录还在

那如何删除云端的记录呢?很简单,将本地仓库的代码强推到远端仓库覆盖掉就行!(本地仓库已经是未提交两个错误信息时的状态了)

最后,我们使用下面的命令将本地代码强行覆盖云端

java 复制代码
git push --force
相关推荐
胡琦博客2 小时前
如何同步远程分支到本地(远程有些分支已经删除了)
git
AI成长日志5 小时前
【实用工具教程】Git进阶:分支策略与合并冲突解决
git
ruanCat6 小时前
加了 .gitattributes 就万事大吉?我差点毁了整个团队的 Git 工作流
git
咋吃都不胖lyh7 小时前
查看 Git 本地仓库关联的远程仓库链接(URL)
git
wheelmouse77887 小时前
AI 时代的 Git 进阶术:如何优雅地让多个 Agent 并行开发
人工智能·git·ai编程
如意.75917 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
用户9186861286871 天前
Git 版本控制完全指南:从入门到精通
git
简离1 天前
Git 一次性清理已跟踪但应忽略文件
前端·git
Drone_xjw1 天前
【环境搭建】Windows 10上使用Docker搭建本地Git仓库(Gitea)完整教程
windows·git·docker
疯狂成瘾者1 天前
git学习目录
git·学习