我发现了Git的fixup
/autosquash
特性,想给予一下。不幸的是,我在压缩一些fixup
提交时遇到了问题。
这是我当前运行git log --oneline -n 4
时的Git历史记录:
95686a33 (HEAD -> feature/ABC-1234-My-Feature, origin/feature/ABC-1234-My-Feature) fixup! feat: implement my feature
ac56a2ee fixup! feat: implement my feature
de904aa3 fixup! feat: implement my feature
cc3a205b feat: implement my feature
现在我运行git rebase -i --autosquash cc3a205b
,编辑器打开,显示以下内容:
pick de904aa3 fixup! feat: implement my feature
pick ac56a2ee fixup! feat: implement my feature
pick 95686a33 fixup! feat: implement my feature
# Rebase cc3a205b..95686a33 onto cc3a205b (3 commands)
我将关闭编辑器,而不进行任何更改,从而得到以下输出:
Successfully rebased and updated refs/heads/feature/ABC-1234-My-Feature.
再次执行git log --oneline -n 4
时,3个fixup
提交仍然存在。
我希望历史记录只包含一个带有新Git提交ID的feat: implement my feature
提交,但不包含fixup
提交。
我是做错了什么还是我有错误的期望?
运行git --version
返回git version 2.38.1.windows.1
,所以我使用的是最新版本。
1条答案
按热度按时间nzk0hqpo1#
问题是您的选择列表不包含要将修正合并到其中的提交:
请注意,您的
feat: implment my feature
提交不会出现在那里,否则Git无法将其识别为修复提交,也没有任何内容可供合并。您需要根据
cc3a205b^
(cc3a205b
的父代)重定基址: