Git误提交撤回到以前版本

背景

Git提交了当前改动后,发现更新的代码还是有问题,想要撤销提交并重新提交正确的代码。

正确步骤

1.查看提交历史记录

首先,使用git log查看提交历史记录,找到你想要撤回的提交的哈希值。

git log

2.回退到目标提交节点

使用git reset命令将HEAD指针回退到目标提交。如果你想要保留工作区中的改动,可以使用--soft选项。

git reset --soft <目标提交的哈希值>

这会撤销你的最新提交,但保留你工作区中的改动。如果你不想保留这些改动,可以使用--hard选项,但请注意这会丢失你未提交的改动。

比如,此时我想回退到第一次提交节点上:

此时,已经撤销了最新提交,回退到第一次提交版本,可以通过git status查看当前工作目录和暂存区的状态以确定是否是自己所需要的。

3.重新提交正确的代码

在撤销了错误的提交后,可以修复代码,然后重新提交。

git add <修改的文件>  
git commit -m "提交正确的代码改动"

拓展

git status 是 Git 中用于显示工作目录和暂存区状态的重要命令。它会列出三种主要的状态,帮助你了解仓库的当前状况。以下是这三种状态及其作用的解释:

1. Untracked files(未被追踪的文件)
  • 作用:这表示你的工作目录中存在一些 Git 尚未开始追踪的文件。这些文件可能是新创建的,或者是从 .gitignore 文件中移除的,但还没有通过 git add 命令添加到暂存区。
  • 含义:Git 不会将这些文件纳入版本控制,除非你显式地告诉它开始追踪这些文件。
  • 例子:当你创建一个新的文件并在没有执行 git add 的情况下运行 git status,你会看到这个文件被列为 untracked file。
2. Changes to be committed(待提交的更改)
  • 作用:这表示你的暂存区中已经有一些文件的更改等待提交。这些文件已经通过 git add 命令被添加到暂存区,但还没有通过 git commit 命令被提交。
  • 含义:这些更改是下一次提交(commit)的内容。你可以随时使用 git commit 来提交这些更改。
  • 例子:当你修改了一个文件并使用 git add 将其添加到暂存区后,这个文件的状态会变为 "Changes to be committed"。
3. Changes not staged for commit(未暂存以供提交的更改)
  • 作用:这表示你的工作目录中有一些文件的更改已经发生,但这些更改还没有被添加到暂存区,即这些更改还没有准备好被提交。
  • 含义:如果你直接运行 git commit,这些更改不会被包括在内。你需要先使用 git add 将它们添加到暂存区,然后才能提交。
  • 例子:如果你修改了一个文件但没有运行 git add,那么这个文件的更改会显示为 "Changes not staged for commit"。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值