git回退到某个版本并提交到远程仓库

当发现最新提交的代码不如预期时,可以通过git回退到先前版本。首先备份,然后使用git回退命令返回上一版本。接着,由于直接提交会被拒绝,需要创建新的分支temp,将回退后的代码提交到temp分支。删除master分支,新建并切换到新的master分支,最后将temp分支的代码合并到master并推送到远程仓库。

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

1. 前言

   有些时候我们提交的远程代码(最新的代码)也许还不如上次写的好,于是我们就想回退到以前的版本。那么怎么回退呢
   对了,回退之前还是先备份下。。

2. 版本回退

git log //查看提交的历史
git log --pretty=oneline //如果嫌上面的输出信息过多可以使用这条(只输出版本号)
git reset --hard HEAD^ //回到上个版本,git reset --hard HEAD^^是上上个版本

好了现在你已经回到上个版本了

3. 提交到远程仓库

  接下来如果你直接提交会发现提交不了, 说远端做了更改需要先pull一下, 如果pull那就又回到最新版本了,相当于没回退。
  思路:我们可以新建一个分支temp,然后把回退后的代码提交到temp分支上暂存,然后删除master主分支,新建一个master分支,提交现有代码到master上。

/*1.新建分支*/
git checkout -b temp              //新建分支并切换到temp分支
git push origin temp:temp         //将代码push到temp分支
/*2.删除主分支*/
git push origin --delete master   //删除远端主分支
git branch -d master              //删除本地主分支
/*3.新建主分支*/
git checkout -b master            //新建主分支并切换到主分支
git push origin master            //提交主分支
/*4.删除暂存分支*/
git branch -d temp
git push origin --delete temp

注意:在github下,操作(删除或重建分支)需要在github网页上切换当前分支,如你要删除master,就要将分支切换到建的temp分支上。(可以理解为自己不能删除自己)
(项目主页->Settings即可看到)
这里写图片描述

参考链接:

廖雪峰的官方网站-git版本回退
解决git提交敏感信息(回退git版本库到某一个commit)

### IntelliJ IDEA 中 Git 回退到指定版本推送至远程仓库 在 IntelliJ IDEA 中执行 Git 版本回退操作涉及多个具体步骤,确保每一步都正确无误对于顺利完成整个过程至关重要。 #### 准备工作 确认已安装配置好 Git 插件于 IntelliJ IDEA 内,且项目已经关联到了对应的 Git 仓库。这能保证后续所有的 Git 命令可以在 IDE 的图形界面中顺利运行[^2]。 #### 查找目标提交记录 通过右键点击想要回退的目标提交记录来启动回退流程。这一动作允许开发者精确选择要恢复的历史状态,而不是简单地撤销最近一次更改。 #### 执行重置 HEAD 操作 选中分支后,可以通过 `Git -> Reset HEAD` 来调整当前的工作区指针指向特定的提交哈希值(即版本号)。此过程中需注意的是,当输入具体的版本号之后,虽然显示上的最新提交可能未变,但实际上工作目录下的文件已经被更新为所选定的老版内容[^1]。 #### 处理本地变更 一旦完成了上述重置命令,接下来应该解决任何可能出现的冲突或差异问题。由于硬重置(`Hard`)会丢弃所有未提交的变化,因此在此之前建议先保存重要数据以防丢失[^4]。 #### 提交与推送修改后的代码 最后一步就是像平常一样完成新的提交尝试将其推送到远端服务器上。如果之前的操作均无误,则此次推送应当能够成功覆盖原有的远程分支,实现预期中的版本降级效果[^3]。 ```bash # 如果需要强制推送,请谨慎使用以下命令: git push origin your_branch_name --force ``` 请注意,在实际应用中应尽量避免频繁使用带有 `--force` 参数的方式强行上传改动,因为这样做可能会破坏其他协作者的工作进度。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值