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
相关推荐
Unity粉末状在校生5 小时前
Git解决fatal: Could not read from remote repository.的问题
git
少年攻城狮6 小时前
Obsidian系列---【如何使用obsidian同步到git?】
git
do better myself8 小时前
网站源码如何部署和加入GIT仓库的
git
爱学英语的程序员11 小时前
Git 提交 LF will be replaced by CRLF the next time Git touches it 报错
git
qq_3391911411 小时前
服务器git pull每次都要输入密码,linux 设置git登录,linux设置git只输入一次账户密码
git
一颗小行星!18 小时前
快速理解 Git submodule
git
A-Jie-Y20 小时前
Git基础-核心概念与常用命令
git
夜珀20 小时前
Git基础修炼手册:在AtomGit上玩转版本控制
git
golang学习记20 小时前
Zed IDE官宣新招:Git Graph 正式支持!
ide·git
要记得喝水21 小时前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash