原文链接:https://blog.csdn.net/hanchao5272/article/details/79435730

有关修改提交(git commit)信息的方法可以参考: Git commit –amend 修改提交信息

有时,在git push之后,才发现还有一些代码需要进行很小的改动,这些改动在原则上不应该作为一次新的提交。 
这时,我们需要撤销这次推送(git push)与提交(git commit),然后进行代码修改,再重新进行提交和推送。

为了实现这个目的,需要进行三步操作。

1.撤销提交信息

首先,通过git log查看提交信息,以便获取需要回退至的版本号:

$ git log
commit a44822002522f2ab1e3a5e2a1cec00a7d3d02185 (HEAD -> master, origin/master, origin/HEAD)
Author: hanchao5272 <89298141@qq.com>
Date:   Sun Mar 4 11:14:55 2018 +0800CSDN-java反射06-成员变量Field-代码优化commit aa909cff2239536df14820fe086d96305b24e9f1
Author: hanchao5272 <89298141@qq.com>
Date:   Sat Mar 3 23:43:03 2018 +0800CSDN-java反射-修饰符-代码优化

我们需要撤销CSDN-java反射06-成员变量Field-代码优化这次提交,所以需要回退至的版本是CSDN-java反射-修饰符-代码优化,即需要回退至的版本号是:aa909cff2239536df14820fe086d96305b24e9f1。

然后,通过git reset –soft <版本号>重置至指定版本的提交,达到撤销提交的目的:

$ git reset --soft aa909cff2239536df14820fe086d96305b24e9f1

参数soft指的是:保留当前工作区,以便重新提交 
还可以选择参数hard,会撤销相应工作区的修改,一定要谨慎使用

然后,通过git log确认是否成功撤销:

$ git log
commit aa909cff2239536df14820fe086d96305b24e9f1 (HEAD -> master)
Author: hanchao5272 <89298141@qq.com>
Date:   Sat Mar 3 23:43:03 2018 +0800CSDN-java反射-修饰符-代码优化

已经成功撤销。

2.撤销

通过git push origin  master –force强制提交当前版本号,以达到撤销版本号的目的:

$ git push origin  master --force
Total 0 (delta 0), reused 0 (delta 0)
To github.com:hanchao5272/myreflect.git+ a448220...aa909cf master -> master (forced update)

必须添加参数force进行强制提交,否则会提交失败,并报错:

$ git push origin master
To github.com:hanchao5272/myreflect.git! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:hanchao5272/myreflect.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

报错原因:本地项目版本号低于远端仓库版本号。

3.修改代码,重新提交和推送

//修改代码,添加修改
git add .
//重新提交
git commit -m "CSDN-java反射06-成员变量Field-代码优化"
//重新推送
git push origin master

Git撤销已经推送(push)至远端仓库的提交(commit)信息相关推荐

  1. Docker push命令推送镜像到远端仓库

    这里以dockercloud.io仓库为例,首先在docker配置文件中配置远端仓库地址,传送门如下: Docker运维与实战(一)-Docker的前世今生 1.登录远端仓库 $ docker log ...

  2. 使用Git命令行推送代码到远程仓库,阿里云效Codeup代码管理平台

    项目提交暂存.提交本地仓库.拉取.推送: [本步骤是新项目流程]请自行根据自有项目分辨是否需要跳过前两步. 右键点击项目根文件夹,选中Git Bash Here,打开命令行. (1)初始化项目命令: ...

  3. Git回退已经提交commit的(还未推送push的)代码及撤回代码回退

    1.Git回退已经提交的代码 原文链接(原文写的是已经推送push的代码) http://t.csdn.cn/CDjgq 已经开始难过了,我提交后没有推送就按照上文提示进行了代码回退,结果idea里面 ...

  4. 【Git实战技巧】恢复被强制推送push失踪的代码

    前言 Git是一个易学难精的分布式版本控制系统,被我们码农常用于代码的管理.如果你还不了解Git,建议先通过廖雪峰的Git教程进行了解,再来看本文,因为本文以使用技巧为主,不会在基础名词上做过多解释. ...

  5. 使用git新建分支推送项目

    前言: 作者:神的孩子都在唱歌 一个还在努力的编程小白 转载请标注来源 使用git新建分支推送项目 一. 新建自己的分支 二. 推送项目到仓库 三. 错误 四. 参考 一. 新建自己的分支 如果单纯的 ...

  6. 【Git】IntelliJ IDEA 提交代码到 GitCode 远程仓库 ( GitCode 创建远程仓库 | 将本地工程推送到 GitCode 远程仓库 | 验证权限 | 生成个人访问令牌 )

    文章目录 前言 一.GitCode 创建远程仓库 二.将本地工程推送到 GitCode 远程仓库 三.验证权限 前言 GitHub 又挂了 , 国内不太好用 , 现在开始使用 gitcode , 地址 ...

  7. Android Studio在Git上将项目推送到新的Url地址中

    本来使用自己的码云库作为远程地址,后面需要推动到新的码云地址上. 1.首先新增新的地址: 2.取名字和添加新地址: 3.推送到新地址: 会发现被拒绝的提示: Push to  XXX/master w ...

  8. idea中git替换,推送到新的github或者gitlab上面

    借鉴 目录 git使用,命令行 初始化本地仓库,并提交内容到本地 连接到远程仓库,并将代码同步到远程仓库 继续修改本地代码,然后提交并推送到github idea中git使用合并分支 修改项目的git ...

  9. Git命令推送文件到远程仓库——码云还是GitHub小猫咪都可噢

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

最新文章

  1. 有了这套模板,再不担心刷不动LeetCode了
  2. SUSE 开发者提议在 GCC 编译器中用 Python 替代 AWK
  3. Allegro光绘的导出
  4. java的add方法的使用_Java HashSet add()方法与示例
  5. MySQL如何查全部序列_Oracle查询所有序列
  6. 《编程导论(Java)·9.3.1回调·3》回调的实现
  7. python display方法_python学习之Display
  8. 禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)
  9. 运筹与决策(二)excel画图、公式与函数用法
  10. markdown设置字体颜色、大小、背景
  11. Canal 及canal.admin(v1.1.5)踩坑记录
  12. 高等数学下册学习笔记(二)
  13. ArcGIS之“检查几何”的内涵
  14. c语言自学怎么学精,新手自学C语言提高效率的方法(混精)
  15. 给想报考CISP的朋友
  16. 人生就是不断学习和修行-2018年个人总结
  17. JVM原理(二)执行引擎篇(JVM程序执行流程、JIT编译器、JIT编译器优化)
  18. 广州的11个辖区_广州有多少个区
  19. Blender精确移动物体轴心
  20. 利用ms16-032提权并打开3389端口

热门文章

  1. LS-DYNA中射流冲击模型的技术难点及案例模型
  2. 多态 (多态的用处,意义,应用)
  3. 按位异或运算符的讲解 (详细)
  4. Python+Vue计算机毕业设计玩得开心旅游网站8m2w8(源码+程序+LW+部署)
  5. 将子窗体展示到父窗体Panel中的方法,以及调用的按钮单击事件
  6. S11、反射系数、回波损耗
  7. [Phonegap+Sencha Touch] 移动开发12 Sencha Touch打包发布网站的离线缓存版本
  8. [C语言]自定义范围内求其中质数所有质数
  9. Neo4J入门笔记[2]---导出数据为CSV
  10. mac下 mysql data文件下的数据库恢复