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

升华

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

j6t

我假设您的意思是使用git commit --fixup.

Git 使用修复提交的提交消息的第一行,它看起来类似于:

fixup! Remove some foos from bars

要查找此提交,您可以 使用与 Git 本身将使用的完全相同的方法:它搜索 让 Git 在历史记录中搜索,直到找到以fixup!令牌后的文本开头的提交神奇的命令是:

git show 'HEAD^{/Remove some foos}'

这将从 at 开始搜索HEAD并显示与大括号中的文本匹配的第一个提交(sans /,这是搜索以下文本的指令)。


编辑:当我在 Windows CMD 中测试东西时,我真的很困惑(特别是它对 的处理^)。正如@torek 在评论中指出的那样,^{/xyz}语法在整个提交消息上匹配给定的正则表达式。因此,需要将正则表达式锚定在文本的开头。正确的命令是:

git show 'HEAD^{/^Remove some foos}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章