git回退一个版本的方法

有时候错误地进行了一次提交,想回滚代码时,用到的命令是git reset,这个命令有三种模式:

  1. git reset --hard HEAD^
    即往前回退一个版本,回退完了后工作区就是上一个版本的代码了,并且是clean的。
  2. git reset --soft HEAD^
    往前回退一个版本,并且将这次错误的提交的代码改动,放在暂存区里。
  3. git reset --mixed HEAD^(和不带参数是一样的)
    往前回退一个版本,并且将这次错误的提交的代码改动,放在工作区里。

如果错误的提交已经被push到远程仓库,那么回退一个版本后,还需要pull最新的代码才能进行push,此时又把错误的提交pull下来了,这个时候就需要强制推送了,命令是这个

git push origin HEAD --force

但是强推之后呢,错误的提交的记录就没有了,直接就是前一次提交的记录了。有什么办法能将上次的提交记录复制一个节点附加在错误的提交节点之后呢?

欢迎评论赐教。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。 2 问题 如果提交...
    chrisLL阅读 705评论 0 0
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,453评论 0 1
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,477评论 0 7
  • 其实使用git已经有两年多时间了,但是对Git的概念一直懵懵懂懂,平时常用的命令就那么几个,而且大部分的时候都是直...
    Claire_wu阅读 620评论 0 5
  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 1,170评论 4 18