Git进阶:修改上次提交 git commit --amend

news2024/11/18 10:31:05

一、问题说明

git commit 后,发现刚才的备注写错了,或者代码漏掉了,这时我们肯定是想取消刚才的提交。此刻有两种方法
(1)使用git reset命令将刚才的提交会退掉。需要注意的是git reset --soft 和git reset --hard的区别。
(2)修改刚才的提交:git commit --amend。这个命令的实质是使用一次新提交覆盖上一个提交

相比git reset很多优点git commit --amend有很多优点,如果工作区已经改的面目全非,这时如果执行 git reset, 就很难分的清哪些内容属于被撤销的提交了,而且修改已经push的提交,那么reset后有可能会因为本地版本比远程版本低而造成push被拒绝。

这里说第二种方法,git commit --amend

二、问题重现

1、 代码修改后,进行了第一次提交。请注意这里的版本号

在这里插入图片描述

2.现在我现在发现刚才的提交错了,下面开始amend的操作,修改刚才的提交

$ git commit --amend

得到如下的界面,出现一个vim编辑器,修改相关内容后,保存。如图所示我修改了提交的备注

在这里插入图片描述

保存后再看一下log日志,很明显,我成功的修改了提交的备注。但是需要注意的是,提交的版本号也变了,因此说git commit --amend命令的实质是使用一次新提交覆盖上一个提交。

在这里插入图片描述

至此,git commit --amend的使用已经介绍完毕了,有兴趣可以继续往下阅读。

问题扩展

有可能出现一个问题。我使用amend修改提交之后发现,原来我第一次的提交才是对的,amend的修改是错误的。那我想回到第一次提交的那个版本,怎么办?

这时候就可以使用git reset来进行恢复了。

首先使用 git reflog 命令查看操作记录,git reflog可以查看到你的所有操作历史,就像回退commit一样,你可以回退你的操作,当然不限于这里的amend,其他操作也可以使用这种方法撤回。

在这里插入图片描述

很明显,我们只需要回退’d5edfc3‘那个操作就行了。
我这里使用了git reset --hard (–hard参数会将回退的内容丢弃掉,请根据自己的需求谨慎使用)。

在这里插入图片描述

再次查看log后,很明显可以看到提交的备注、尤其是版本号,已经回到最开始的那一个版本了。

在Git中,总是有后悔药可以吃的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】国内首届Discord场景创意编程开源项目

以下开源项目是由环信联合华为举办的《国内首届Discord场景创意编程赛》作品,附源码,一键即用。 一、 模拟器游戏直播-新新人类 新新人类模拟器游戏直播基于环信超级社区Demo构建,增加以“video-x”命名的新型Channel,用户可在本…

Java三目运算符导致 NPE

在三目运算符中,表达式 1 和 2 在涉及算术计算或数据类型转换时,会触发自动拆箱。当其中的操作数为 null 值时,会导致 NPE 。 一、基础知识 三目运算符 三目运算符是 Java 语言中的重要组成部分,它也是唯一有 3 个操作数的运算…

Linux常用命令——tempfile命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tempfile shell中给临时文件命名 补充说明 有时候在写Shell脚本的时候需要一些临时存储数据的才做,最适合存储临时文件数据的位置就是/tmp,因为该目录中所有的内容在系统重启后就会被清…

LInux(三)程序地址空间、内存管理

目录 一、程序地址空间 二、内存管理方式 1、分段式内存管理 2、分页式内存管理 3、段页式内存管理 三、关于内存管理内容补充(分页式) 1、页表简单呈现 2、访问权限位 3、缺页中断 4.内存置换算法 一、程序地址空间 创建父子进程同时访问同一变量…

正式发布丨Azure OpenAI Service

Azure OpenAI 服务现已在微软全球 Azure 平台正式发布,这是微软人工智能大众化以及与 OpenAI 持续合作的又一里程碑。 大型语言模型正迅速成为用户无限创新、应用 AI 解决重要问题的平台。随着 Azure OpenAI 服务的正式发布,更多企业用户可以访问世界先…

在线支付系列【5】支付安全之数字证书

有道无术,术尚可求,有术无道,止于术。 文章目录公钥信任问题数字证书颁发流程使用流程SSL数字证书HTTPSSSL/TLS 证书如何申请SSL 证书使用keytool 生成ssl证书通信过程公钥信任问题 之前我们使用对称、非对称加密、信息摘要、数字签名&#…

DPDK系列之一基础环境搭建

一、DPDK是什么 DPDK,Data Plane Development Kit,数据平面开发套装,它还有一个兄弟SPDK,专门用来做存储优化的。它主要运行于Linux,是由Intel几家公司共同开发,用于快速处理数据的一个网络开发工具套装。更详细的说明…

python数据清洗1

数据获取——》数据清洗——》数据转换——》数据分析 通过设置步长,有间隔的取元素通过设置步长为-1,将元素颠倒 数据清洗工具 目前在Python中, numpy和pandas是最主流的工具。 Numpy中的向量化运算使得数据处理变得高效;Pandas提供了大量…

【Java入门】Java数据类型

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java入门 💬个人格言:不断的翻越一座又一…

(十四)线程池

线程池线程池是一组线程的集合。线程池维护一个队列,调用者向这个队列中添加任务,而线程池中的线程则不停地从队列中取出任务执行。线程池的继承关系如下图,其中ThreadPoolExecutor和ScheduledThreadPoolExecutor是具体的实现。ThreadPoolExe…

LeetCode刷题模版:141 - 150

目录 简介141. 环形链表142. 环形链表 II143. 重排链表144. 二叉树的前序遍历145. 二叉树的后序遍历146. LRU 缓存【未实现】147. 对链表进行插入排序148. 排序链表149. 直线上最多的点数150. 逆波兰表达式求值结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方…

多轮对话(三):Spoken Language Understanding 进展和前沿

本篇博客基于哈工大发表在IJCAI上的论文:A Survey on Spoken Language Understanding - Recent Advances and New Frontiers。 论文链接 github链接 口语理解(SLU)旨在提取用户查询的语义框架,是面向任务的对话系统的核心组件。本…

excel函数技巧:两个查询函数的用法比较 上篇

EXCEL函数江湖烽烟再起,函数大擂台迎来两位重量级选手。守擂者是号称全民偶像、人见人爱车见车载的巨星级函数VLOOKUP,挑战者则是名气不大实力强劲高手的LOOKUP函数!这对与生俱来的对手,究竟会在函数擂台上擦出怎样的火花&#xf…

Nginx原理

一、master和worker二、worker当客户端发送请求,先到达master,master通知所有的worker,然后所有的worker开始竞争任务。三、一个master和多个worker有什么好处(1)可以使用nginx -s reload热部署,利用nginx进行热部署(2…

8、MariaDB11数据库安装初始化密码Navicat连接

MariaDB11安装 安装前准备 下载安装包 点我去MariaDB官网下载安装包 查看相关文档 Mariadb Server官方文档 使用zip安装 解压缩zip 将下载到的zip解压缩到想安装的位置。 生成data目录 打开cmd并进入到刚才解压后的bin目录, 执行mysql_install_db.exe程序生…

Python异步编程Future对象详解

今天继续给大家介绍Python相关知识,本文主要内容是Python异步编程Future对象详解。 一、Python Future对象简介 在上文Python Task对象详解中,我们介绍到了Task对象,而Future对象是Task对象的基类,比Task更加底层。一个Future是…

英方软件在科创板上市:总市值89亿元,胡军擎、江俊夫妇为实控人

1月19日,上海英方软件股份有限公司(下称“英方软件”,SH:688435)在上海证券交易所科创板上市。本次上市,英方软件的发行价为38.66元/股,发行2094.6737万股,募资总额约为8.10亿元,募资…

linux的工具(yum,vim)

前言 linux工具的意义Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开…

pycharm远程链接服务器配置

拿到gpu的节点以后开始下面的配置 1. 下载专业版pycharm,一定是专业版,community版本没有远程连接ssh的功能。 2. python编译器->添加ssh编译器->新创建服务器配置 3. 输入host名,用户名。 host名字如:vpcc-gpu032&#xf…

【自学Docker】Docker wait命令

Docker wait命令 大纲 docker wait教程 docker wait 命令可以用于阻塞一个或多个 Docker容器 直到容器停止,然后打印退出代码。 docker wait命令后面的 CONTAINER 可以是容器Id,或者是容器名。 docker wait语法 haicoder(www.haicoder.net)# docker…