通过git 将gitee仓库的代码 回退到上一个版本或指定版本

本文分享了在误操作导致代码版本混乱时,如何使用Git命令进行版本回退及代码恢复的经验。具体步骤包括:使用`git log`查看版本历史,通过`git reset --hard`命令指定版本回退,利用`git push origin HEAD --force`强制更新远程仓库,以及通过`git reflog`找回已删除的提交记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当天下午,我将前端代码 和 后端代码想放到一个仓库,便于我管理和提交,但后端项目之前有个自己的仓库源,所以在进行一起提交时,后端的单独弹出窗口,我错误的将后端代码单独上传,所以我想将后端代码退回到上一个版本。

解决该问题的逻辑:

将本地仓库指定回退到一个版本,之后强制推送 覆盖掉之前的版本

一、强制回退到指定版本

1. 查看版本日志,执行 git log 命令

 通过此,能看到提交的版本的id号,如添加开发文档,的版本id号为:

=》0e6dcb58b311eaf73f8fa9c3dd7b8e0506e69976

2. 指定回退到“添加开发文档”

git reset --hard 0e6dcb58b311eaf73f8fa9c3dd7b8e0506e69976

之后你还可以通过 git log 查看是否回退成功

3. 强制覆盖 远程仓库(即gitee)代码

git push origin HEAD --force

我在本地回退到上一个版本后,我之前写的代码就没了,我都想哭,这怎么办呢?

最后在找到git reflog命令,可以将我之前删除的commit 提交记录找回,并指定到那个版本,这样代码才能找回(多亏我手没欠,将.git目录删掉)

二、找到已经删除的commit 记录

 git reflog

 之后通过 92d8c19 这个id号,强制回退

git reset --hard  92d8c19

回退成功会进行提示

### 如何在 Gitee 上回滚通过 IDEA 提交的 Git 代码 #### 使用命令行方式回滚提交 当需要撤销最近一次提交时,可以通过以下方法来实现: 如果仅需撤消最后一次提交但仍保留工作目录中的更改文件,则可以在 Git Bash 终端执行如下命令: ```bash git reset HEAD~1 ``` 若要完全移除最后一次提交及其所有更改,可使用强制重置选项: ```bash git reset --hard HEAD~1 ``` 上述操作会使得HEAD指向上一个版本,并丢弃最新的提交记录[^1]。 对于更早之前的错误提交,可通过指定特定的哈希值来进行回退。假设已知想要恢复到的具体commit id为`abc1234`,那么应该运行下面这条语句: ```bash git reset abc1234 ``` 为了使这些修改反映到远程仓库(即Gitee),还需要推送带有历史改写的更新: ```bash git push origin <branch_name> --force ``` 请注意,强行推送到共享分支可能会影响团队成员的工作副本,因此建议谨慎行事并提前通知相关人员[^2]。 #### 在 IntelliJ IDEA 中图形化界面下进行回滚 IntelliJ IDEA 集成了丰富的Git功能支持,允许开发者直接在其内置VCS工具中管理源码库而无需切换至外部shell环境。具体步骤如下: - 打开项目后点击顶部菜单栏里的 `VCS` -> `Git` -> `Show History...` 查看提交日志; - 浏览列表找到目标提交项,右击该项选择 `Reset Current Branch to Here...`; - 接下来会出现三个选项:“Mixed”, “Soft” 者 “Hard”。根据需求挑选适合的一种模式。“Mixed”保持索引不变,“Soft”连同暂存区一起保存,“Hard”则彻底清除任何未跟踪的变化; - 完成设置之后确认对话框内的提示信息,IDEA 就会在后台自动处理剩余事宜了; 最后一步同样重要的是同步远端服务器上的变动,这通常意味着再次回到命令行输入`git push --force`以覆盖线上资源[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@穷且益坚,不坠青云之志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值