git版本回退操作

git版本回退操作搞懂 git 回退命令 如果不慎提交 可通过 gitreset gitrevert 来撤销操作

git版本回退操作

本文 git 相关命令:

  • git reset:回退版本,可指定某一次提交的版本。git reset [–soft | –mixed | –hard] commitId。
  • git revert:撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。git revert commitId。
  • git status:查看文件在工作区和暂存区的状态。
  • git log:查看代码提交记录。
  • git cherry-pick:选择commitId 应用在当前分支。git cherry-pick commitId。

回退分两种情况:

  • 已 commit,未push到远程仓库。
  • 已 commit,并且push到了远程仓库。

已 commit,未push到远程仓库

git reset –soft(撤销commit)

touch 创建了一个a.text,并提交到了本地仓库。

git版本回退操作

此时回滚a.text,git log找到要回退到的版本号,此处版本号为前一个版本。(或者通过 git reset [HEAD] 回退版本)

git版本回退操作

执行命令:git reset –soft 7ee5305f1e1e0f66c7d69666ff7054fc6e

git版本回退操作

通过idea可看到commit 记录被撤销了。

git版本回退操作

git reset –mixed(撤销 commit 和 add 两个动作)

touch创建新文件 b.text, 并提交到本地仓库。

git版本回退操作

通过git log找到要回退到的版本号 7ee5305f1e1e0f66c7d69666ff7054fc6e

执行命令:git reset –mixed 7ee5305f1e1e0f66c7d69666ff7054fc6e

git版本回退操作

git版本回退操作

此时可以看到,git reset –mixed 撤销的文件 未加入到暂存区,所以是撤销 commit 和 add 两个动作。

已 commit,并且push到了远程仓库

git reset –hard(撤销并舍弃版本号之后的提交记录)

新建文件a.text,并push到远程。

git版本回退操作

执行命令:

  • git reset –hard 7ee5305f1e1e0f66c7d69666ff7054fc6e
  • git push -f(强制推送到远程,之前提交都会被覆盖,慎用)

git版本回退操作

此时可用看到提交记录和文件都被撤销了。使用需谨慎,不推荐使用。


当然,如果不小心用了git reset –hard操作回退了,那么可用git reflog命令查看命令历史,找到被删除的commit,再次操作。

git版本回退操作

git revert(撤销,但是保留了提交记录)

新建文件a.text,并push到远程。

通过 git revert 版本号,撤销当前提交记录。版本号为要撤销的版本号,此处为当前提交的版本号。

git版本回退操作

可以看到本地和远程仓库文件都被撤销了。但是git log中能看到提交和撤销记录。

推荐用这种方式回退远程的代码。比如我们在master分支提交错了文件需要回退,那么我们用这个方式回退后,再用git cherry-pick commitId 重放该提交。最后本地修改了再push到远程。

git版本回退操作

总结

回退分两种情况:

  1. 已 commit,未push到远程仓库。
    • git reset –mixed(撤销 commit 和 add 两个动作)。

    git reset –soft(撤销commit)。

  2. 已 commit,并且push到了远程仓库。
    • git revert(撤销,但是保留了提交记录)。

    git reset –hard(撤销并舍弃版本号之后的提交记录)。

git版本回退操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233408.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月22日 下午8:01
下一篇 2025年7月22日 下午8:22


相关推荐

  • 详解FPN网络

    详解FPN网络目录导读摘要简介相关工作 FPN 算法 FPN 应用于 RPNFPN 应用于 FastRCNN 对比实验 FPN 对 RPN 网络的影响 FPN 对 FastRCNN 网络的影响总结参考文献导读 FeaturePyram 这篇文章主要是用来解决 FasterRCNN 物体检测算法在处理多尺度变化问题时的不足 FasterRCNN 中无论是 RPN 网络还是 FastRCNN 网络 都是基于单个高层特征 conv4 这

    2026年3月20日
    2
  • Handler用法及解析

    Handler用法及解析nbsp nbsp 目录 1 handler 作用 nbsp 1 传递消息 Message2 子线程通知主线程更新 ui2 常用 api3 handler 使用避免内存泄露 nbsp 1 handler 怎么使用会产生内存泄露 nbsp 2 如何避免 handler 的内存泄露 nbsp 3 nbsp 雷区 4 handlerThrea nbsp handlerThrea 是什么 2 HandlerThrea 使用及销毁

    2026年3月18日
    2
  • cocos2d-x ccTouchBegan不被调用

    cocos2d-x ccTouchBegan不被调用cclayer 里面的 ccTouchBegan 和 ccTouchesBeg 到底调用哪个 不添加下面的代码 就调用的是 ccTouchesBeg 添加了 就调用的是 ccTouchBegan 而且 ccTouchBegan 里面返回 true 触摸事件就不会继续往下传递 voidUserInte registerWith CCT

    2026年3月26日
    3
  • 转:SIGPIPE[通俗易懂]

    转:SIGPIPE[通俗易懂]SIGPIPEsend或者writesocket遭遇SIGPIPE信号当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个…

    2022年5月30日
    34
  • Python 数组操作_python中数组的表示形式

    Python 数组操作_python中数组的表示形式文章目录前言 一、numpy是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言在python中本身有着列表等数据结构,但是列表只是一种数据的存储容器,不具备任何计算能力。故引入数组的概念。提示:以下是本篇文章正文内容,下面案例可供参考一、numpy是什么?NumPy是一种非常常用的第三方模块,在学习数据分析及挖掘时经常能够用到他。接下来就阐述一些使用numpy进行的基本操作。二、使用步骤1.引入库代码如下(示例):i…

    2022年8月13日
    12
  • 掌握最实用的Cursor技巧

    掌握最实用的Cursor技巧

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号