git - 如何确定 git fixup 提交的目标提交?
问题描述
在创建修复 git 提交后,是否有办法显示或 cat-file 或提交内容并找出它的目标提交?具体来说,我不想一直猜测和检查 rebase -i 来发现我的 rebase 目标在历史上已经足够远了。
解决方案
我假设您的意思是使用生成的提交 git commit --fixup
。
Git 使用 fixup 提交的提交消息的第一行,类似于以下内容:
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}'
推荐阅读
- kubernetes - 我想从 Istio 入口修改 http 响应代码和正文
- php - 检查错误对象时的 PHP instanceof 和 is_a
- azure-devops - Swagger 文件不存在——Azure 机器学习
- javascript - React-如何使用摊牌/降价?
- flutter - 为什么我的 if 条件没有正确响应
- mysql - 如何从周五到周五从mysql获取上周的数据
- html - 按下按钮时不弹出 Boostrap 模态
- reactjs - 如何在 FlatList 中打印多个数据
- php - 方法中的php依赖注入不起作用
- modelica - 如何分配 Modelica_LinearSystems2.ModelAnalysis.Linearize 中使用的变量?