如何利用IDEA将Git分支代码回退到指定历史版本

这篇具有很好参考价值的文章主要介绍了如何利用IDEA将Git分支代码回退到指定历史版本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

作为一名后端开发,相信大家一定遇到过这样的情景,代码开发人员过多,并且开发分支过多,导致代码版本管理困难,这样就难免遇到一些代码合并出错,比如,当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,或者说合并错了分支,然而也push到远程仓库去了。这种情况下该如何回退?

二、问题

已经提交到仓库(本地和远程仓库)的内容如何利用IDEA回退到指定版本?

三、方法及区别

  • Revert操作:Revert操作会当成一个新的提交记录,追加到提交日志当中,这样便保留了原来的提交记录。(推荐)

  • 利用IDEA的Reset Head指针:Reset Head指针,会抛弃原来的提交记录,使Head指针强制指向指定的版本。

四、实验环境

如何利用IDEA将Git分支代码回退到指定历史版本
上图中,假设master分支是生产分支,dev_wyh分支是开发分支,现在将dev_wyh分支的代码推送到master分支,如下图所示:
如何利用IDEA将Git分支代码回退到指定历史版本
假设此时我们发现代码合错了,需要将master分支代码回退到合并之前的版本,即Git信息为第一次:推送处,接下来我们可以用上面的两种方法去回退。

本次实验环境未必和您的情况完全相符,不过大致思路是相同的。如果您在解决问题过程中遇到冲突,解决就好了。

五、解决方法

方法1:Revert操作

当在版本第一次:推送基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退到版本第一次:推送
1、在想要回退历史版本上单击鼠标右键,选择Revert Commit(见下图)如何利用IDEA将Git分支代码回退到指定历史版本

2、这时如果弹出冲突对话框,双击冲突文件或点MERGE以解决冲突。(见下图)
如何利用IDEA将Git分支代码回退到指定历史版本
3、在解决冲突对话框中,决定最终的版本文件。(见下图)
如何利用IDEA将Git分支代码回退到指定历史版本
4、填写提交信息并提交。(见下图)
如何利用IDEA将Git分支代码回退到指定历史版本
5、同步提交到远程仓库(见下图)
如何利用IDEA将Git分支代码回退到指定历史版本
这种回退的好处在于,如果后悔了“回退”这个操作,也可以回退到没有回退之前的版本。因为历史记录还保留提交记录。
如何利用IDEA将Git分支代码回退到指定历史版本

方法2:Reset Head指针

当在版本第一次:推送基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退到版本第一次:推送
1、在想要回退历史版本上单击鼠标右键,选择Reset Current Branch to Here...(见下图)
如何利用IDEA将Git分支代码回退到指定历史版本
2、在弹出的git reset 参数类型选择框中,选择Hard(见下图),并RESET
如何利用IDEA将Git分支代码回退到指定历史版本
3、本地仓库回退到了第一次:推送,需要同步远程仓库,执行push操作。
如何利用IDEA将Git分支代码回退到指定历史版本
4、此时本地master分支代码已经回退,但无法推送到远程master分支,如果用命令行git push后,提示Push拒绝。打开Terminal,在本项目目录下,输入git push -f 强制同步远程仓库。
如何利用IDEA将Git分支代码回退到指定历史版本
5、代码成功回退,同步后,会发现git日志丢失了版本1以后的提交。。(如下图)
如何利用IDEA将Git分支代码回退到指定历史版本

六、总结

  • Revert操作其实就是回退操作,默认是回退到最近一次提交点,也可以回退到指定提交点,就像本次实验演示的。
  • Revert的操作其实也是设置Head指针。
  • 其实比较推荐Revert操作,毕竟可以后悔。方法2中git push -f 强制同步操作并不推荐使用,在团队协作环境中可能会引发问题。
  • 在方法2中,选择git reset参数选择的是hard,这种参数适合场景是我只想回退到指定版本的文本。工作区里的内容可以放弃,版本2完全放弃。其实也可以选择Mixed。Mixed作用是在设置Head指针时,保留当前工作区里的文本内容。这样方便直接修改,适合于提交的内容有误,只想修正回来就可以了这种情况。(对比效果见下图)
    如何利用IDEA将Git分支代码回退到指定历史版本
    如何利用IDEA将Git分支代码回退到指定历史版本

如何利用IDEA将Git分支代码回退到指定历史版本

  • 在回退过程中,可能您的情况不会像本实验那么简单,也就是说会出现冲突情况。那么只需要解决冲突即可。

七、总结

除了Hard和Mixed选项,其它回退选项的效果讲解可以去查阅这篇博文:IDEA Git Reset 选项说明文章来源地址https://www.toymoban.com/news/detail-512271.html

到了这里,关于如何利用IDEA将Git分支代码回退到指定历史版本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git 将某个文件回退到指定版本

    直接上干货 吐槽 Git文件回退到指定版本或单个文件回退到指定版本。对于某个文件回退到指定版本的命令是不可行的。如下 git提示

    2024年02月12日
    浏览(49)
  • idea 使用 git 回退到某个历史版本

    有时我们提交git错了,想回滚 怎么办? 一、用idea工具: 1、idea中打开Terminal:输入:git log 显示历史提交记录。或者 (右击项目– Git -- Show History --选中要回退的版本–Copy Revision Number),直接复制; 2、选择 你要回滚的版本号,输入命令 ,比如:git reset --hard 248694b41373140d8f8

    2024年02月11日
    浏览(45)
  • git回退到指定版本并且清除在gitLab上的提交记录

    1、git log ---查看提交的记录  2、git reset --hard id   id是上图红框选中的内容,要回退到哪一个版本则粘贴对应记录的id 3、回退之后需要push当前操作才能彻底清除提交记录      git push -f -u origin yzl     这里的yzl是自己的分支名字 4、git  log          此时已经没有提交 的记

    2024年02月11日
    浏览(38)
  • 【Flutter】Dart/Flutter SDK如何降低版本、回退到指定版本

    因为dart3.0以后不再支持 no-sound-null-safety;但是有些项目不得以切换到dart3.0以前继续使用运行项目 方法1: 通过 命令,将flutter降级为当前通道的上一个活动版本; 如果没有存在老版本则会提示 flutter downgrade There is no previously recorded version for channel “stable”. 这样的话则可以通

    2024年02月16日
    浏览(32)
  • Git如何回退到某个提交

    在Git中回退到某个提交可以通过几种不同的方法实现,以下是一些常见的方法: 使用 git reset 命令 : git reset 命令可以将HEAD和当前工作分支重置到指定的提交。例如: 这里, commit-hash 是你想要回退到的提交的哈希值。 git reset 有三种模式: --soft , --mixed 和 --hard ,每种模式

    2024年02月05日
    浏览(37)
  • git提交后如何回退到之前的版本

    如果我们已经使用git commit把代码提交 并且推送到了远程仓库中,那么使用几下几个命令可以 回退到指定版本 1 git log 使用这个命令查看提交的记录 这个时候会出现好几次的提交记录 每次后面都有如上的commit 编号 我们想回退到哪个版本 就把当前的commit编号复制 然后使用如

    2024年02月11日
    浏览(43)
  • Git撤销本次pull rebase(变基) 回退到pull前的代码

     执行以下代码后,版本回退到之前的版本,怎么恢复? 1.输入命令查看本地记录 列表记录: 2.找到本次rebase之前的id:53106a6 3.执行命令回退 4.执行命名取消rebase状态   5.恢复现场    

    2024年02月16日
    浏览(37)
  • git merge合并分支代码后如何回退合并操作

    这次问题产生的原因还是自己操作过于急躁了,新功能开发完成之后没有实时的与经理沟通就进行了新功能分支合并的操作,导致当前版本部分功能由于没有同步产生了一些问题,因此需要把代码进行回退操作; 但是分支代码修改了许多文件,并且已经推送到了远程仓库,手

    2024年02月08日
    浏览(57)
  • Git 回退分支到指定本版本

    通过 git log 查看指定版本 执行 git reset --hard  版本序列号  回退本地代码库 例:git reset --hard  12312312e123df3e1234f46c1234b123456c1234 推送远程服务器 git push -f -u origin 分支名 。 例: git push -f -u origin master 重新拉代码 git pull 通过 git log 查看指定版本 执行 git reset --hard  版本序列号

    2024年02月09日
    浏览(34)
  • uniapp 回退到指定页面 保存页面状态

    uniapp 历史页面回退到指定页面。 getCurrentPages() 内容如下

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包