如何确定git fixup提交的目标提交?

时间:2019-10-03 13:16:12

标签: git

创建了fixup git commits之后,有没有办法显示或显示cat-file或某些内容并确定其目标提交? 具体来说,我不想一直猜测和检查rebase -i来发现我的rebase目标在历史上已经足够远了。

1 个答案:

答案 0 :(得分:2)

我假设您的意思是使用git commit --fixup生成的提交。

Git使用修正提交的提交消息的第一行,它类似于以下内容:

fixup! Remove some foos from bars

要查找此提交,您可以使用Git本身将使用的完全相同的方法:它搜索让Git在历史记录中进行搜索,直到找到以{之后的文本开头的提交{1}}令牌。魔术命令是:

fixup!

这将从git show 'HEAD^{/Remove some foos}' 开始搜索,并显示与大括号中的文本匹配的第一个提交(无HEAD,这是搜索以下文本的说明)


编辑:当我在Windows CMD中测试内容时(尤其是对/的处理),我真的很困惑。正如@torek在注释中指出的那样,^语法在整个提交消息中匹配给定的正则表达式。因此,有必要将正则表达式锚定在文本的开头。正确的命令是:

^{/xyz}