创建修复 git 提交后,有没有办法显示或 cat-file 或其他东西来提交并找出它的目标提交? 具体来说,我不想一直猜测和检查变基 -i 来发现我的变基目标在历史上足够远。
我假设你的意思是用git commit --fixup
生成的提交。
Git 使用修正提交的提交消息的第一行,如下所示:
fixup! Remove some foos from bars
要查找此提交,您可以使用与Git 本身完全相同的方法:它搜索让 Git在历史记录中搜索,直到找到以fixup!
标记后的文本开头的提交。魔术命令是:
git show 'HEAD^{/Remove some foos}'
这将从HEAD
开始搜索,并显示与大括号中的文本匹配的第一个提交(无/
,这是搜索以下文本的指令(。
编辑:当我在Windows CMD中测试东西时,我真的很困惑(特别是它对^
的处理(。正如@torek在注释中指出的那样,^{/xyz}
语法在整个提交消息上与给定的正则表达式匹配。因此,有必要将正则表达式锚定在文本的开头。正确的命令是:
git show 'HEAD^{/^Remove some foos}'