Git回退代码到某次commit的实现方法
前言
工作中,Git的使用越来越频繁。。除了最常用的clone
,add
,commit
,push
,pull
等命令;还有回退命令reset
。这一篇博客就记录一下该回退命令的简单使用。
场景
因为公司开发过程中,处理订单,限时购买等业务时,都是用的阿里云的消息队列MQ实现的。或者是两个系统之间的交互,同步信息,如用户在支付系统A
下了一个订单(支付成功),这个时候支付系统A
除了处理订单,还有向库存系统B
发送一个消息,告知库存系统B
要减少下单商品的库存。
我本地跑项目的时候,如果不注释掉监听器
,测试服上的消息也可能会发送到我本地,导致消息丢失。
然后~~我就把本地的监听器那一段代码注释掉,方便测试人员在测试服上进行测试。注释掉代码如下图:
哈哈~~注释掉后,提交的时候,被我一起提交了!真是尴尬呢!测试人员说出bug了!
一看代码提交历史~~消息监听器被我注释掉了。这个锅我背!(笑哭)
解决问题
哎呀。。。上面说的好像跟这篇文章要说的不太对的上。
其实是开发中,我不小心把不该提交的代码提交到了本地,例如TaskListener
这个类,改了之后,不能提交,一不小心被我commit到了本地(还没有推送到远程)。
有可能已经commit了多次到本地。
1. 先查看commit日志 执行下面命令
git log
2. 回滚、取消之前的提交
这里我们假设应该回滚到239afed0857cc2e77c17c01014077808619af64d
这个版本,及这个版本及之后的commit全部取消。
git reset --hard commit_id //退到/进到 指定commit的sha码 commit_id:239afed0857cc2e77c17c01014077808619af64d
3.ok,可以重新提交了
git commit a.txt -m "重新提交" // 记得不要提交不想提交的文件哦
IDEA RESET
也可以直接使用IDEA的Reset Head
功能,先通过git log
得到要回退的commit_id
,再进行下面截图的操作。可以先validate一下哦,看通过commit_id
能不能找到这一次提交。
总结
开发过程中,总是会不小心提交一些不能提交的文件。。如果你开发用的IDEA,可以看看IDEA的这个功能—实用,再也不用担心提交错了。
到此这篇关于Git回退代码到某次commit的实现方法的文章就介绍到这了,更多相关Git回退代码到某次commit内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
浅析git server“丢失”commit问题
1 背景 gitlab某仓库有同事发现部分代码文件内容丢失,具体表现 A. dev分支commit信息是连续的,看不出明显的大时间范围批量丢失 B. 以SuncardCashier/control/CSymbolEdit.h为例,在1c88f613下只能看到2个历史相关提交 但是1天前提交的bfff1f51,也有此文件的修改提交,意味着bfff1f51这个提交"丢失"了 2 追查过程 2.1 gitlab server侧寻找线索 表面上像是gitlab server出现了某些问题导致&
-
git修改已commit的注释信息实现
有时候commit后发现注释不太合适需要修改,网上查找了一些方法,经测试后整理一下. 环境:windows 情况:commit后未push 修改前情况: 修改步骤 1.输入命令,进入vim界面 git commit --amend 2.进入编辑模式 按键i可进入编辑模式(与vim用法相同). 3.修改注释信息,然后退出编辑模式 按键ESC可退出编辑模式(与vim用法相同). 4.完成修改,查看结果 在非编辑模式下输入**:wq**(与vim用法相同)可保存退出. 到此这篇关于git修改已comm
-
Git回退代码到某次commit的实现方法
前言 工作中,Git的使用越来越频繁..除了最常用的clone,add,commit,push,pull等命令:还有回退命令reset.这一篇博客就记录一下该回退命令的简单使用. 场景 因为公司开发过程中,处理订单,限时购买等业务时,都是用的阿里云的消息队列MQ实现的.或者是两个系统之间的交互,同步信息,如用户在支付系统A下了一个订单(支付成功),这个时候支付系统A除了处理订单,还有向库存系统B发送一个消息,告知库存系统B要减少下单商品的库存. 我本地跑项目的时候,如果不注释掉监听器,测试服上的
-
详谈git 提交代码步骤,干货
利用命令行提交代码步骤 提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码. 1:拉取服务器代码 git pull 2:查看当前工作目录树的工作修改状态 git status 状态: 1:Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged. 2:Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 3:deleted: 文件已删除,本地删除,服务器上还没有删除. 4:renamed: 3
-
Git的代码合入流程详解
目录 总述 Rebase解决冲突 适用情况 操作方式 Squash解决冲突 适用情况 操作方式 Merge执行合入 总述 代码合入流程用于减轻代码合入复杂度.简化主分支历史(具有线性的历史).保证合入代码对主分支的HEAD有效.代码合入分为两步 解决冲突:将需要合入的分支变基到目标分支之上.保证合入代码对目标分支的HEAD有效.此时会解决所有代码冲突. 执行合入:向目标分支提交merge请求,执行合入CI后完成合入. 其中第一步“解决冲突”的方法分为两种种情况: Squash.如 feature
-
利用git提交代码的方法步骤
一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可安装!!或者到此处下载:git下载,pkg包下载完成,双击安装. 输入命令:git --version 可查看当前git版本 二.安装后需要一些配置 配置用户名和邮箱: $ git config --global user.name "Your Name" $ git config --g
-
IDEA中项目集成git提交代码的详细步骤
简介:在团队协作开发的过程中,好的代码管理能更加有效的使日常开发的过程中对各个开发人员提高开发速度.下面将详细介绍在IDEA中使用git提交代码的过程: 一:pull代码 在提交代码之前,我们必须先对代码就行更新操作,这一步非常重要,如果不进行更新代码操作,当有其他小伙伴有更改的内容已经提交到代码仓库但是我们本地缺没有更新的话,就会造成我们提交的代码跟别人已提交过的代码产生冲突(使用git解决冲突会比较麻烦,在这里就不进行讲解了,后期会单独更新).即使我们解决了冲突,也可能会冲掉别人的代码,造成
-
Git提交代码错了吃后悔药的几种常用办法(场景分析)
1. 前言 写代码都会犯错误,不小心提交了一个错误我该怎么办?提交的描述信息我该怎么办?如果你也遇到这个问题,那么今天胖哥分享的这篇文章将非常适合你. 2. Commit 错了怎么办 放心都是有后悔药吃的,我们来看看. 场景一 假如你git commit了一堆代码,但是你发现本次Commit的描述信息有点随意,你可以这样: git commit --amend -m"新的提交消息" 场景二 你本来打算Commit五个文件,但是由于疏忽你Commit了四个.当然你可以再Commit一次来
-
VS2022 Git提交代码的实现
目录 第一种方法 第二种方法 第三种方法 第一种方法 在fork和pull request后,克隆对方的源代码到一个新文件夹,将所有项目文件复制到用VS2022创建的新项目工程中(里面也包含了git文件夹,这个最重要),打开这个项目工程后,可在右侧看到如下图的工具栏. 这时候就可以按照需求修改代码,通过图形界面来提交,这里面的操作就可以自己摸索. 第二种方法 完全通过类似于Git Bash的linux命令操作. 第三种方法 在一个新项目中,直接创建一个Git库. 右侧也同样会出现Git工具栏.
-
Android Studio使用Kotlin时,修改代码后运行不生效的解决方法
问题现象 前段时间升级 Android Studio 3.1.3+ 版本后,决定尝试使用 Kotlin 做 APP 开发看看.结果却发现,修改 String 资源后,"运行",修改的内容没有生效.一开始以为只是 String 资源是这样,于是试了下 kt 文件,结果发现"运行"也不能生效. 但是先 clean 了,再"运行",却可以正常编译出来.查了好久发现是 New Module 后,Run/Debug Configurations不完整所致.
-
C#实现为类和函数代码自动添加版权注释信息的方法
本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法,分享给大家供大家参考之用.具体方法如下: 以web项目为例: 一:给类加注释 1.在visual studio 的安装路径下 如:[盘符]:/Program files/Microsoft Visual Studio 8/Common7/IDE/ItemTemplates/web/cshare/2052/class.zip ,将里面的class.cs改为: /*------------------------------------
-
java代码抓取网页邮箱的实现方法
实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 package cn.sdhzzl; import java.io.Buf
随机推荐
- 关于Vue.js一些问题和思考学习笔记(1)
- javascript搜索框效果实现方法
- ASP.NET获取真正的客户端IP地址的6种方法
- 使用Java实现类似Comet风格的web app
- java中多态概念、实现原理详解
- 详解Java反射实现Aop代理
- 在asp.net(c#)下实现调用cmd的方法
- ThinkPHP路由详解
- JSP JavaBean的setProperty属性
- js实现类bootstrap模态框动画
- ASP.NET:把ashx写到类库里并在页面上调用的具体方法
- Python入门篇之字符串
- js 增强型title信息提示效果
- 页面编码codepage=936和65001的区别
- 定义标题的最好方法
- XSLT轻松入门第二章:XSLT的实例
- JavaScript注入漏洞的原理及防范(详解)
- 彻底解决 webpack 打包文件体积过大问题
- 电脑硬件资源的冲突与解决方法
- List对象去重和按照某个字段排序的实现方法