Git提交后追加修改操作指南

作者:字节逆旅日期:2025/10/17

在开发时经常会遇到在git commit后,又把文件修改了一下的情况,此时要如何操作才能避免提交多个commit呢?


前面你已经走了这两步:

1git add .
2git commit -"fix:修改了一个bug"
3

此时你提交的代码还在本地暂存区,然后你又发现没改完,又有新修改文件产生。

接下来,你的操作步骤应该是这样的:

基本步骤

  1. 将修改的文件添加到暂存区(Staging Area)
    这里还是和你平时提交前一样,使用 git add 命令。
1# 添加某个特定文件  
2git add <文件名>  
3# 或者,添加所有当前修改的文件  
4git add .  
  1. 执行修改提交(Amend Commit)
    这会把你刚刚添加的修改,合并到上一次的commit提交中,并且会重写(覆盖) 上一次的提交。
1git commit --amend  

git commit --amend 后会发生什么?

如果你的文本编辑器(如 Vim, VSCode 等)弹出来了一段文本内容,不要慌,你会看到上一次提交的提交信息。

这时你可以 直接保存退出(一般是输入:wq),就使用原来的提交信息。或者也可以修改提交信息,然后保存退出,相当于这是你修改上次写错的提交信息的机会。

  1. 命令执行完成后,commit被重置

你之前的那次提交(我称之为 Commit A)就会被一个新的提交(姑且称之为 Commit A‘)所替代。Commit A‘ 包含了原来的更改和你刚刚添加的更改。

最终效果:你的提交历史中看起来只有一次提交,但这次提交包含了你后来追加的更改,很nice。


重要提醒(尤其涉及远程仓库时)

涉及到远程仓库时,我都是很小心的,因为这可能会污染同事的代码,前面几步都是在本的操作。这里说一下涉及远程仓库时要注意的地方:

如果已经推送到远程了怎么办?

如果你已经将原来的提交 git push 到了远程仓库,那么在你本地执行 --amend 后,你的本地历史就和远程历史不一致了。

这时你需要使用 git push --force-with-lease推荐)或 git push --force 来强制覆盖远程仓库的历史。

请谨慎使用 force push,因为这会影响此项目中的其他程序员——如果他们已经基于你原来的提交进行了开发,强制推送会打乱他们的流程。通常只在确定只有你一人在修改这个分支时才能这么做。

操作流程总结

1# 1. 提交后,发现还有需要修改的地方,继续修改文件
2# 2. 将修改后的文件加入暂存区
3git add <file(s)>
4# 或者
5git add .
6
7# 3. 将修改追加到上一次提交
8git commit --amend
9# (在弹出的编辑器中确认或修改提交信息,然后保存退出)
10
11# 4. 【如果之前的提交已经推送到远程】需要强制推送更新
12git push --force-with-lease
13

一般情况下,只需完成前两步 git addgit commit --amend 即可。

如果这篇文章对你有用,请帮我转发分享,谢谢支持!


Git提交后追加修改操作指南》 是转载文章,点击查看原文


相关推荐


前端必备:JS数组与对象完全指南,看完秒变数据处理高手!
良山有风来2025/10/16

一、为什么你的代码总是处理不好数据? 你是不是经常遇到这样的场景: 从后端拿到一堆数据,却不知道如何快速筛选出需要的内容 想要对数据进行排序、过滤、转换,却写出一堆复杂的for循环 面对嵌套的对象结构,感觉像是在走迷宫,总是找不到想要的数据 别担心,这都不是你的问题!很多前端开发者都在数据处理上栽过跟头。今天这篇文章,就带你彻底掌握JavaScript中最核心的两种数据结构:数组和对象。 读完本文,你将获得: 数组和对象的完整操作方法大全 实际开发中最常用的数据处理技巧 避免常见坑点的最佳


云原生-k8s
dalianwawatou2025/10/14

k8s的优缺点 优点:部署应用方便,具有高可用、负载均衡功能,能自动扩容、对Pod进行监控 缺点:需要很多机器,成本投入大 安装 服务器准备 首先安装三台虚拟机,一台主节点,两台从节点,规划如下 操作系统:Rocky_linux9.6 配置: 4核cpu +/8Gib 内存/20G磁盘 网卡模式:NAT 角色IP主机名主节点master192.168.52.131k8s1从节点node1192.168.52.132k8s2从节点node2192.168.52.133k8s3


HTTPS 真的牢不可破吗?—— 中间人攻击与安全机制解析
程序员三明治2025/10/13

👨‍💻程序员三明治:个人主页 🔥 个人专栏: 《设计模式精解》 《重学数据结构》 🤞先做到 再看见! 在实际应用中,我们可能会遇到这样的情况:当客户端通过浏览器向服务端发起 HTTPS 请求时,请求被“假基站”劫持并转发至“中间人服务器”。于是,客户端实际上是与中间人完成了 TLS 握手,而中间人再与真正的服务端建立 TLS 连接。具体流程如下: 具体过程如下: 客户端发起 HTTPS 连接请求,被假基站重定向至中间人服务器。中间人随后向真实服务端发起 H


苦练Python第62天:零基础玩转CSV文件读写,csv模块实战​
倔强青铜三 VIP.1 初学乍练2025/10/11

前言 大家好,我是倔强青铜三。欢迎关注我,微信公众号:倔强青铜三。点赞、收藏、关注,一键三连! 欢迎来到苦练Python第62天! 今天我们来学习Python标准库中的csv模块。 一、CSV 是什么?能做什么? CSV(Comma-Separated Values,逗号分隔值)是一种纯文本表格格式。 每行是一条记录(record),行内每个字段(field)用分隔符(通常是逗号)隔开。 结构简单、体积小、兼容性强,几乎所有电子表格、数据库、数据分析工具都支持。 常见场景 Excel /


某大厂跳动面试:计算机网络相关问题解析与总结
360_go_php2025/10/10

​ 在参加像字节跳动这样的互联网公司面试时,计算机网络的知识是一个常见的考察点。以下是一些常见的计算机网络面试问题和详细解答,在面试中打下坚实的基础。 1. HTTPS通信过程 HTTPS (HyperText Transfer Protocol Secure) 是一种安全的 HTTP 协议,通过 TLS/SSL 加密实现数据的保密性和完整性。HTTPS 的通信过程包括以下几个步骤:​编辑 客户端发起连接:客户端向服务器发送请求,使用 HTTPS 协议。 服务器响应:服务器返回其 SSL/T


CentOS安装Jenkins
何中应2025/10/8

说明:之前介绍过用 Docker 的方式部署 Jenkins,本文介绍通过安装包的方式部署最新版的 Jenkins 在云服务器上安装Jenkins 第一步:准备工作 安装 Jenkins 的前提,是需要服务器有 JDK、Maven 和 Git 环境,如下: 这几个环境,参看上面的文章进行安装,最新版的 Jenkins 需要 JDK17 或 JDK21,Maven 最好装 3+ 第二步:安装启动 找一个合适的目录,下载 Jenkins 安装包 wget https://mirro


Vue 组件与插件的区别详解
excel2025/10/7

在 Vue 的开发体系中,“组件 (Component)” 与 “插件 (Plugin)” 是两个经常被提及的概念。它们都能提升开发效率与系统可维护性,但用途与设计目标截然不同。本文将通过定义、作用、实现方式与使用场景等方面,对两者进行系统梳理与对比。 一、组件是什么? 1. 定义回顾 组件是一种将图形或非图形的逻辑抽象为独立单元的开发模式。在 Vue 中,每一个 .vue 文件都可以被视为一个组件。 简单来说,组件就是一个具有独立逻辑与界面的可复用模块。 2. 组件的优势 降低系统耦合度


Python 的内置函数 ascii
IMPYLH2025/10/5

Python 内建函数列表 > Python 的内置函数 ascii ascii()函数是Python提供的一个小巧但强大的工具,它能够将任何对象转换为只包含ASCII字符的表示形式,非ASCII字符会被转义。这个函数在调试、日志记录、数据序列化等场景中特别有用,尤其是在需要确保输出只包含可打印ASCII字符的环境中。 ascii 的函数原型: def ascii(obj): ''' 转换为字符串(调用对象的 `__repr__` 方法),非 ASCII 字符将被转义


资深面试题之MySQL问题及解答(二)
360_go_php2025/10/4

​ MySQL 是一款广泛使用的开源数据库管理系统,其提供了许多强大的功能,如事务管理、索引优化以及高级查询支持等。在面试中,面试官通常会通过一些高级 MySQL 问题来测试候选人对数据库管理、性能优化、事务隔离等方面的理解。以下是一些常见的 MySQL 资深面试问题及其解答。 ​编辑--- 21. MySQL 里记录货币用什么字段类型好? 在 MySQL 中,记录货币类型的数据建议使用 DECIMAL 或 NUMERIC 类型。DECIMAL 类型用于存储精确的数字,特别是对于涉及小数的货币数


Elasticsearch MCP 服务器:与你的 Index 聊天如何在 Linux,MacOS 及 Windows 上进行安装 ElasticsearchKibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana
Elastic 中国社区官方博客2025/10/3

访问外部知识在提升 LLM 响应能力的现代 AI 工作流中起着关键作用。但高效管理 context、确保 AI agents 之间的通信,以及扩展工具以协同工作并非易事。这就是 Model Context Protocol (MCP) 的作用所在。 Model Context Protocol 是一个开放标准,使开发者能够在他们的数据源和 AI 驱动的工具之间建立安全的双向连接。其架构非常直接:开发者可以通过 MCP servers 暴露他们的数据,或者构建连接这些服务器的 AI 应用(MCP

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0