码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Git:撤销 commit 提交或撤销对远程仓库的push操作


    一、撤销push

    1. 执行 git log 查看提交日志,获取需要回退的版本号 ID

    在这里插入图片描述

    2. 执行 git reset –-soft <版本号> ,如 git reset --soft 9d8c980edacd71410ed655,重置至指定版本的提交,达到撤销提交的目的
    3. 然后执行 git log 查看提交日志

    在这里插入图片描述

    此时,已重置至指定版本的提交,log中已经没有了需要撤销的提交

    git reset 命令分为两种: git reset –-soft 与 git reset –-hard ,区别是:

    git reset –-soft 表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。

    git reset –-hard直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码。

    4. 执行 git push origin 分支名 –-force ,强制提交当前版本号。

    查看github commit 记录,对应的commit记录也撤销了

    在这里插入图片描述
    至此,撤销push提交完成

    二、撤销 commit 提交

    1. 执行 git log 查看需要撤销的commit的前面一个提交版本的id;
    2. 执行 git reset --hard commit_id ,该commit_id为需要撤销的commit的提交的前面一个提交的版本,即需要恢复到的提交的id,重置至指定版本的提交,达到撤销提交的目的
    3. 执行 git log 查看提交日志,commit提交已撤销

    三、撤销 commit 记录细节

    写完代码后,执行完 commit 后,又想撤回 commit,怎么办?

    git reset --soft HEAD^   // 这样就成功的撤销了 commit 记录,回退到了指定版本
    
    • 1

    注意,仅仅是撤回 commit 操作,您写的代码仍然保留。

    HEAD^的意思是上一个版本,也可以写成HEAD~1
    如果你进行了2次commit,想都撤回,可以使用HEAD~2 // 上两个版本

    关于commit的参数
    –mixed

    意思是:不删除工作空间改动代码,撤销 commit,并且撤销 git add . 操作

    这个为默认参数 git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

    –soft

    不删除工作空间改动代码,撤销commit,不撤销git add .

    –hard

    删除工作空间改动代码,撤销commit,撤销git add .

    注意完成这个操作后,就恢复到了上一次的commit状态。

    如果commit注释写错了,只是想改一下注释,只需要:
    git commit --amend

    此时会进入默认vim编辑器,修改注释完毕后保存就好了。

  • 相关阅读:
    线程安全集合:CopyOnWriteArrayList源码分析
    接口自动化测试实战
    【JavaScript保姆级教程】输出函数和初识变量
    17.1、JavaWeb-初识JavaWeb、Java Web技术栈
    【正点原子STM32连载】第十四章 蜂鸣器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
    在IDEA中搭建Spring5.2.x版本源码(~附带完整过程和图示~)
    微信公众平台怎么添加秒杀活动
    面向对象、方法重写、重载(overload)与重写(override)的区别、super关键字、构造方法的特殊性
    计算机毕业设计Java网上汽车售票系统(源码+系统+mysql数据库+Lw文档)
    如何给图片降噪?看完你就学会了
  • 原文地址:https://blog.csdn.net/qq_45503196/article/details/126089133
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号