当前位置: 首页 > article >正文

【git】【rebase】git修改提交信息的几种方法

git commit --amend -m 只能修改最后一次的提交信息。如果要修改更早的提交信息,我们需要使用 git rebase -i

总结一下修改历史提交信息的几种方法:

  1. 修改最后一次提交信息:
git commit --amend -m "新的提交信息"
  1. 修改任意历史提交信息(使用 rebase):
git rebase -i <commit-hash>~1

Windows 中使用 git rebase -i 的步骤:

  1. 运行 git rebase -i <commit-hash> 命令

  2. 在打开的 vim 编辑器中:

    • i 进入编辑模式
    • 修改 目标pickreword
    • Esc 退出编辑模式
    • 输入 :wq 保存并退出
  3. 在新的编辑器中:

    • i 进入编辑模式
    • 修改提交信息
    • Esc 退出编辑模式
    • 输入 :wq 保存并退出

如果在过程中遇到问题:

  • 使用 :q! 放弃更改并退出
  • 使用 git rebase --abort 取消整个 rebase 操作
  • 使用 git rebase --continue 继续未完成的 rebase
  1. 使用 filter-branch(适用于特定场景):
git filter-branch --msg-filter 'if [ "$GIT_COMMIT" = "要修改的提交hash" ]; then echo "新的提交信息"; else cat; fi' HEAD

需要注意的是:

  1. 修改历史提交信息会改变提交的 hash 值
  2. 如果这些提交已经推送到远程仓库,你需要使用 git push --force 来推送更改
  3. 如果其他人已经基于旧的提交进行了开发,修改历史可能会导致合并冲突

在团队协作中修改历史提交时要特别小心,最好先和团队成员沟通。


http://www.kler.cn/a/568946.html

相关文章:

  • 【AI Coding】Windsurf:【Prompt】全局规则与项目规则「可直接使用」
  • 如何在 ArcGIS Pro 中将SHP转为KML:详细步骤与操作指南
  • 基于互联网协议的诊断通信(DoIP)
  • 《HarmonyOS Next × ArkTS框架:从AI模型压缩到智能家居控制的端侧开发指南》
  • 对rust中的from和into的理解
  • Android 应用开发中,证书、签名和加固简述
  • 加入二极管的NE555 PWM 电路
  • Go在1.22版本修复for循环陷阱
  • RJ45网口 与 M12连接器对比(D-code,X-code)
  • 面试常见问题
  • UDP接收方法使用Task替代Thread(解决关闭程序未响应的问题)
  • Flink事件时间和处理时间咋区分
  • yolov8_pose模型,使用rknn在安卓RK3568上使用
  • 深入解析 MySQL 中的时间函数:NOW() 与 SYSDATE() 的奥秘
  • TCP的四次挥⼿为什么是四次?为什么不能是三 次
  • 【计算机网络——概述】
  • 深搜专题7:最大质数
  • 【基于Raft的KV共识算法】-序:Raft概述
  • JavaEE基础之- 过滤器和监听器Filter and Listener
  • Deepseek 模型蒸馏