Git提交修正的核心技巧:git commit --amend 的专业实践与深度解析
结论先行
git commit --amend 是用于 修正最近一次提交 的高效工具,可修改提交信息、追加遗漏文件或调整代码内容,避免冗余提交记录,保持提交历史的简洁性。适用于本地未推送的提交修复场景。
文章持续更新,可以微信搜一搜「 半个脑袋儿 」第一时间阅读
核心功能与操作
1. 修改提交信息
## 修改最近一次提交的描述(未推送时使用)
git commit --amend -m "修正后的提交信息"
- 场景:提交信息拼写错误、描述不准确时重新编辑。
2. 追加文件到最近提交
## 将漏掉的文件加入暂存区
git add 遗漏的文件名
## 合并到最近提交(保留原提交信息)
git commit --amend --no-edit
- 场景:提交后发现有文件未添加,需合并到同一提交记录。
3. 修改提交内容
## 修改代码后,将改动加入暂存区
git add 修改的文件
## 合并到最近提交(可选是否修改提交信息)
git commit --amend
- 场景:提交后发现代码存在小错误(如拼写、逻辑问题),需立即修复。
关键注意事项
- 仅限本地未推送的提交
- 若已推送至远程仓库,需用
git push -f强制覆盖,但需谨慎操作,可能影响他人协作。
- 若已推送至远程仓库,需用
- 提交历史会被重写
- 修正后的提交会生成新的 Hash ID,原有提交从历史中移除。
- 协作分支避免强制推送
- 公共分支(如
main或develop)禁止强制推送,否则可能导致团队代码混乱。
- 公共分支(如
进阶用法
- 修改提交作者信息
## 重置为当前配置的用户
git commit --amend --reset-author ## 手动指定新作者
git commit --amend --author="Author Name <email@example.com>"
- 保留原提交时间戳
## 使用原提交时间(需获取原提交时间并替换)
git commit --amend --date="原提交时间"
最佳实践
- 本地未推送的提交:优先使用
--amend,减少无意义的提交记录。 - 已推送的提交:确认无他人依赖后,再执行
git push -f,并通知团队。 - 复杂历史修改:若需修改更早的提交,使用
git rebase -i进行交互式变基。
通过 git commit --amend,让每一次提交都精准无误,维护清晰高效的代码历史!
Git提交修正的核心技巧:git commit --amend 的专业实践与深度解析的更多相关文章
- DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。
把"Perform code analysis" 和 "Check TODO" 复选框前面的勾去掉就好了. 这个可能是因为所分析的目标文件太大了,造成一直分析不 ...
- IDEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作
把"Perform code analysis" 和 "Check TODO" 复选框前面的勾去掉就好了. 这个可能是因为所分析的目标文件太大了,造成一直分析不 ...
- git提交项目常用命令及git分支的用法
1.第一步首先从git托管平台clone项目,我这里就使用idea为例: 填写git的url与存放本地目录名及项目名 2.如果你对项目进行了一些修改,就可以执行git命令,进行提交. 有两种方 ...
- git commit --amend的撤销方法
某同事执行git commit 时太兴奋,执行了 git commit --amend 慌了,不敢编辑上一个commit的description了,直接选择了wq退出,然而git毕竟强大,默认将改动合 ...
- 怎么创建一个良好的Git提交信息
译 原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 提交信息是对提交之前添加和更改的文件所做的更改的简短描述. 良好的提交信息不仅对你 ...
- git提交后文件夹显示灰色无法打开的解决办法
上传完本地文件到gitee线上后发现如下情况,文件夹显示为灰色并且无法访问. xxx@xxx 的灰色文件 问题原因 : 无法点击的灰色文件夹中含有 .git 文件 即在本地初始化的仓库(使用 git ...
- 『现学现忘』Git后悔药 — 34、git commit --amend 命令
目录 1.git commit --amend 命令说明 2.使用场景 (1)场景一 (2)场景二 3.git commit --amend 命令原理 这是我们Git中的第三种后悔药. 1.git c ...
- Git——快速重命名文件和查看commit提交版本【四】
快速重命名文件 $ git mv README.md readme.md 使用git mv命令后直接commit即可,不再需要进行add或rm操作 查看版本历史 所有的参数都可以进行组合使用的,比如我 ...
- commit lint规范化团队git提交信息
一.快速提交符号angular编码规范的提交信息 1.命令行中安装commitizen: npm install -g commitizen commitizen init cz-convention ...
- Git 提交的正确姿势:Commit message 编写指南
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit message( ...
随机推荐
- DBeaver连接PostgreSQL后只有默认数据库“postgres”不显示其他数据库的问题解决办法
我们在使用DBeaver连接PostgreSQL后,发现数据库中只有"postgres"默认数据库,不显示我们自己创建的数据库. 1.问题描述 我们在使用DBeaver连接Post ...
- mysql之数据连接池
数据库连接池 C3P0: 配置文件 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config&g ...
- 流程控制之Scanner
Scanner对象 可以通过scanner类(java.util.Scanner)来获取用户的输入 基本语法: Scanner s = new Scanner(System.in); 通过Scanne ...
- 手把手教你在个人电脑部署本地知识库(基于RAGFlow + DeepSeek [+ Ollama])
1. 实现方案及准备工作 按照教程一步一步操作,基本没有什么太大难度,稍显麻烦的可能就是因网络问题有些资源无法下载,对于镜像无法下载的问题,文中也提供了替代的方法,但是github访问不稳定这点 ...
- 面试官:谈谈RabbitMQ的队头阻塞问题?
RabbitMQ 延迟消息的队头阻塞问题是指,在使用死信队列(DLX)和 TTL(消息过期时间)实现延迟消息时,由于队列的先进先出(FIFO)特性,在队列头部消息未过期的情况下,即使后续消息已经过期也 ...
- C#下.NET配置文件的使用(1)
原文链接:https://blog.csdn.net/dbzhang800/article/details/7212420 System.Configuration 命名空间中的东西是为读写应用程序的 ...
- 动态能力理论&知识管理理论--商业之所见
动态能力理论:企业整合,建立和再配置内外部资源以适应快速变化环境的能力. (1)"动态"指的是适应不断变化的环境,企业必须具有不断更新自身能力的能力: (2)"能力&qu ...
- 探秘Transformer系列之(6)--- token
探秘Transformer系列之(6)--- token 0x00 概述 语言是人类特有的概念.作为一个抽象符号,人是可以理解每个语言单词的意义的,但是现在的NLP语言模型无法直接的从感知中抽象出每个 ...
- Java - 高射炮打蚊子(第二弹)
题记部分 01 || 面试题 001 || 什么是JVM JVM(Java虚拟机)是Java程序运行的环境,它是一个抽象的计算机,包括指令集.寄存器集.堆栈.垃圾回收等.JVM屏蔽了与具体操作系统平台 ...
- qa 工作
1.定流程--监控参照规范(cmmi,公司自己的,scrum[例会.启动会])--产出物报告 (项目维度)-配置--经盈.财务 2.培训组织-组织讲师(知识库).外部拓展