Git autosquash功能异常问题排查及解决方案
Git fixup/autosquash 功能失效问题及解决办法
原始问题
使用Git的fixup/autosquash工作流时功能未正常生效,当前Git版本为git version 2.39.1.windows.1。
仓库提交日志
* 4f9429d8 Tue Jun 24 16:13:44 2025 (12 minutes ago ) (HEAD -> kth-JAN-1614-ui-nits) kth-JAN-1614-ui-nits fixup! kth-JAN-1614-ui-nits Refactor and small improvements [Karthik Thirugnanam] * b9f50337 Tue Jun 24 15:57:02 2025 (29 minutes ago ) (origin/kth-JAN-1614-ui-nits) kth-JAN-1614-ui-nits Log SQL statement in Marten logger [Karthik Thirugnanam] * 6f376eca Tue Jun 24 15:52:55 2025 (33 minutes ago ) kth-JAN-1614-ui-nits UI Nit fixes for release pipelines [Karthik Thirugnanam] * c071b3c2 Tue Jun 24 15:50:56 2025 (35 minutes ago ) kth-JAN-1614-ui-nits Refactor and small improvements [Karthik Thirugnanam] *
执行的变基命令
git rebase -i --autosquash origin/master
变基界面显示内容
pick c071b3c2 kth-JAN-1614-ui-nits Refactor and small improvements pick 6f376eca kth-JAN-1614-ui-nits UI Nit fixes for release pipelines pick b9f50337 kth-JAN-1614-ui-nits Log SQL statement in Marten logger pick 4f9429d8 kth-JAN-1614-ui-nits fixup! kth-JAN-1614-ui-nits Refactor and small improvements
按预期,最后一条提交应被自动排序到对应提交下方并标记为fixup,但实际未生效。
问题原因及解决办法
公司提交钩子会自动为提交摘要添加前缀(如kth-JAN-1614-ui-nits),Git识别fixup提交时会匹配fixup!后的内容,前缀的存在导致无法正确关联目标提交。
问题示例提交
kth-JAN-1614-ui-nits fixup! kth-JAN-1614-ui-nits Refactor and small improvements [Karthik Thirugnanam]
解决方式
- 移除提交前缀后,fixup/autosquash功能恢复正常。
- 临时禁用提交钩子,执行带
--no-verify参数的fixup命令:
git commit --no-verify --fixup
内容的提问来源于stack exchange,提问作者Karthik T
相关产品推荐
相关产品推荐

