关于Git仓库误操作提交过后进行回退的一次操作记录
今天写代码的时候一时写嗨了,哎呀,导致我进行了一次错误的git提交。莫名其妙把三天前写的代码给提交到仓库上去了。导致我三天的工作量全部丢了。幸好平时习惯用git进行版本控制。通过git回退能够把原来的代码找回来。这个词,这边我来记录一下。在git上将代码分支回退到之前的分支的操作。
查找要回退到的提交
首先,需要确定要回退到的提交,你可以使用 git log 命令来查看提交历史,并找到你要回退到的提交的哈希码。例如
git log
恢复到最后一次的提交状态
现在,使用 git reset 命令将分支回退到目标提交。git reset 的原理是将分支的指针移动到指定的提交,并且可以选择不同的模式,如 --soft、–mixed 或 --hard,分别对应不同的回退方式:
–soft 模式会保留你的更改,但将分支指针移动到目标提交,允许你重新提交更改。
–mixed 模式(默认模式)将分支指针移动到目标提交,并清除暂存区,但保留工作目录的更改,你需要重新暂存和提交这些更改。
–hard 模式将分支指针移动到目标提交,并清除暂存区和工作目录的更改,慎用,因为它会永久删除更改。
我提交过后分支的哈希码是 7291825 上一次提交的分支的哈希码是 b8d6a0e 首先将代码恢复到最后一次的提交状态。
git revert b8d6a0e
将更改推送到远程仓库
git push 命令将本地分支推送到远程仓库的相应分支。HEAD:master 表示将当前分支(即 HEAD 指向的分支)推送到远程的 master 分支。
最后,成功回退分支到之前的状态,并将更改推送到远程仓库,恢复到正确的状态。
git push origin HEAD:master