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
相关推荐
炸膛坦客4 小时前
Git 和 GitHub:(九)修改本地仓库内容并推送到远程仓库(关联/克隆)
git·github
To_OC6 小时前
一次 git reset 翻车,让我彻底分清了 hard 和 soft,也想通了 Vibe Coding 的本质
git·程序员·vibecoding
Ai拆代码的曹操6 小时前
Git 集成:AI 代理中的版本控制工作流设计
大数据·git·elasticsearch
lazy H7 小时前
Git clone 怎么用?克隆项目及常见问题完整教程
大数据·git·后端·学习·搜索引擎·github
m0_743697599 小时前
关于ftp与SELinux的冲突问题
git·github
前进的程序员10 小时前
VS Code Git 工作树:多分支并行开发体验
git·vs code·git工作树
半夜修仙10 小时前
二.Git分支管理
git
六bring个六13 小时前
git使用笔记
笔记·git
最后冰吻free16 小时前
git 不新增commit修改中间commit对应的文件
git
芳草萋萋鹦鹉洲哦16 小时前
【git】重新生成并添加 SSH Key(Mac)
git·macos·ssh