git代码回滚是使用reset还是revert

这篇具有很好参考价值的文章主要介绍了git代码回滚是使用reset还是revert。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git代码回滚是使用reset还是revert

时光不能回退,Git却允许我们改变历史。

想要让Git回退历史,有以下步骤:

使用git log命令,查看分支提交历史,确认需要回退的版本
使用git reset --hard commit_id命令,进行版本回退
使用git push origin命令,推送至远程分支

快捷命令:

回退上个版本:git reset --hard HEAD^ 

【注:HEAD是指向当前版本的指针,HEAD^表示上个版本,HEAD^^表示上上个版本】

如果修改到的文件比较少,我们可以不通过命令回滚的方式,手动删除之前的修改,再进行提交。

reset与revert区别

reset和revert都可以用来回滚代码。但他们是有区别的,准确来说,reset是用来"回退"版本,而revert是用来"还原"某次或者某几次提交。

举个例子,比如在master分支,有以下提交历史:

42eae13 (HEAD -> master) 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

可以看到,master最新版本为第四次修改。

如果发现,在第四次修改有错误,需要回滚到第三次修改,就可以用reset命令来回退。

执行 git reset --hard 97ea0f9,这个时候,git的提交历史变为:

97ea0f9 (HEAD -> master) 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

可以看到master当前指向97ea0f9这个版本,我们回到了第三次修改。

使用reset命令,Git会把要回退版本之后提交的修改都删除掉。要从第四次修改回退到第一次修改,那么会删除第二、三、四次的修改。【注:这里并不是真正的物理删除】

那如果发现第三次修改有错误,想要恢复第三次修改,却要保留第四次修改呢?

这个时候就可以用revert命令:

git revert -n 97ea0f9
git commit -m "恢复第三次修改"

Git提交历史会变成:

33b8b30 (HEAD -> master) Revert "恢复第三次修改"
42eae13 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

实际上,Git把第三次修改从提交中剔除(还原)了,还保留了第四次修改,并且产生了新的commit_id。

在实际生产环境中,代码是基于master分支发布到线上的,会有多人进行提交。可能会碰到自己或团队其他成员开发的某个功能在上线之后有Bug,需要及时做代码回滚的操作。

在确认要回滚的版本之后,如果别人没有最新提交,那么就可以直接用reset命令进行版本回退,否则,就可以考虑使用revert命令进行还原修改,不能影响到别人的提交。

使用reset还是revert,需要考虑实际的适用场景,没有绝对化。

上面提的并不是真正的物理删除,是因为Git会把分支的每次修改记录都会保留下来,比如有某次的commit,某次的reset等。而使用git reflog show命令,可以查看完整的提交历史,

只要有commit_id,我们就能恢复任意版本的代码,在各版本之间来回穿梭。文章来源地址https://www.toymoban.com/news/detail-467941.html

到了这里,关于git代码回滚是使用reset还是revert的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • idea中git相关知识(revert,reset,stash/unstash changes使用)

    白色:已经加入版本控制,已提交,无改动 蓝色:已经加入版本控制,已提交,有改动 绿色:已经加入版本控制,还未提交 红色:未加入版本控制 工作区,暂存区,版本库 ● 工作区:项目目录,开发存放代码的地方。 ● 暂存区:数据暂时存放的地方。待提交区,存放有

    2024年02月05日
    浏览(58)
  • idea-git操作 :Rollback(回退),Reset HEAD(重置/回滚) --git项目代码丢失

    在Reset HEAD 操作中代码丢失的解决方法: 看Reset Head ! rollback: 回退 - 选择回退add的内容 (1.已commit的:只是删除修改部分;2.已add的:只是回退到未add的状态3.未add的 不变) Reset Head: Reset Type : mixed(混合) ,soft(软) ,hard(硬) TO Commit : HEAD ,HEAD^ (回退到上一commit版本) ,number(回退指定commit版本

    2024年02月10日
    浏览(93)
  • Git进阶之代码回滚、合并代码、从A分支选择N次提交,合并到B分支【revert、merge、rebase、cherry-pick】

    B站视频地址: https://www.bilibili.com/video/BV1KX4y1a7N9 Git学习文档:https://d9bp4nr5ye.feishu.cn/wiki/PeDPw3mm3iFA36k9td9cVeignsZ 在很长一段时间里,我对Git的操作只限于:提交代码,拉取代码,合并代码。 虽然上面这些操作在日常工作中也足够了,但不会点高级知识不利于装X,今天我们来学

    2024年02月08日
    浏览(80)
  • Git reset、revert用法

    reset是删除之前的提交记录,所有的提交点都会被清除,我们看下执行前后的git log区别 执行完成后发现个人分支第三个提交好像从来没有出现过一样,建议不要使用reset,毕竟会把别人的提交点彻底删除 revert 将指定提交的代码给清除掉,提交记录还存在,相当于添加一个新

    2024年02月10日
    浏览(41)
  • git的 reset 和 revert 区别

    线上master分支不可信,需要回到某个分支; 但是很多人习惯把一个需求,分多次commit,于是会出现下面这种情况 基于这种情况,git revert 就不如 git reset好用,可以借助Idea,直接通过 git reset --hard 指向需要回退到的commit,然后随便找个地方,敲上一个空格,产生一次新的commi

    2024年03月21日
    浏览(50)
  • git reset 命令详解 git revert命令详解。

    git reset 命令格式为: git reset [ --soft | --mixed | --hard ] [ commitid ] 在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。 soft: –soft参数只将其它的commit重置到你选定的HEAD,

    2024年02月15日
    浏览(58)
  • git 的rebase、reset、revert区别?

    rebase 、 reset 、和 revert 是 Git 中用于修改提交历史的三个不同的命令,它们的作用和效果有所不同。 1. rebase : git rebase 用于将一个分支的提交移到另一个分支上,并重新应用这些提交。主要有两种用途: 整理提交历史 :将多个小的提交合并成一个更为清晰的提交历史,避免

    2024年01月21日
    浏览(63)
  • git版本回退(git reset、git revert、git stash)

    本文 git 相关命令: git reset: 回退版本,可指定某一次提交的版本。 git reset [--soft | --mixed | --hard] commitId 。 git revert: 撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。 git revert commitId 。 git commit --amend: git commit –amend 既可以对上次提交的内容进行修改,也

    2024年02月08日
    浏览(57)
  • git版本回退:revert回退其中一个提交/reset回退到某个版本

      对于已经push或没有push的,回退commit方式一致。只是最后push 的时候 ,如果修改了已经push 的commit,那么需要使用git push -f 区别:git reset commitID;  回退到某个版本。中间的版本都会回退。            git revert commitID; 只将commitID的代码回退。中间的版本不变。且会形成一条

    2024年02月12日
    浏览(50)
  • idea中操作git的reset版本回滚操作

            在项目修改过程中,git中提交不想要的版本,想要回滚到之前的某一个版本重新开始工作,需要用git的reset操作进行回滚,这里和revert有区别。         reset是直接回滚到某一个版本,将这个版本之后的所有版本丢弃。         revert是指定取消某一个版本的提交。

    2024年02月07日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包