git - 运行 git rev-list B2 ^B1 时有没有办法识别恢复的提交?
问题描述
我试图找到存在于一个分支中但不存在于另一个分支中的所有提交。看下图,我想知道 B2 中有什么不在 B1 中。当我尝试以下命令时:
git rev-list B2 ^B1
我只取回提交 c2,即使 c1 在进入 B1 之前已恢复。有没有办法检测这种情况,以便同时取回 c1 和 c2,因为它们的更改在技术上不包含在 B1 中?
解决方案
对你的图表做一些假设——具体来说,在对角线连接顶线的点有一个合并提交c1
——提交字面意思是在分支中B1
。诸如B2 ^B1
使用提交图(由提交及其后向链接组成的 DAG)之类的操作来查找提交。他们完全忽略了这些提交中的快照;他们只是在提交图上走。
确实,除此之外C1
,还有另一个提交,也包含在 branchB1
中,实际上是 un-does C1
。您无法轻易找到,因为 Git 不会自行存储该信息。您当然可以将该信息放入,例如,提交消息中,并编写您自己的代码来遍历其中包含的提交列表,B1
以查看是否存在具有此类日志消息的提交,但这是您必须做的事情,而不是什么Git会自己做。
(在我看来,这可能是一个XY 问题。也就是说,也许您不想要提交列表,而是比较分支的提示提交快照,B1
并且B2
可能应用了一些过滤。)
推荐阅读
- javascript - 在 React 的对话框中显示 Props 数据
- c# - 如何在数据库中获取 mongodb 中存在的所有角色
- reactjs - 如何在带有 react-native-firebase 的 Headless JS 函数中使用钩子?
- flutter - 尽管 url 没有改变,但 Flutter 强制重新加载图像事件
- mysql - 用我的自动脚本清空文件来备份我的数据库(手动没问题)
- android - 如何检查按钮是否被按下
- javascript - 如何在 OpenLayers 5 中仅发送修改后的几何图形?
- android - 锁定和解锁设备后的 InflateException
- python - 如何从数据框 B 中的列 (mother_age) 中减去数据框 A 中的列 (child_age)?
- c++ - 无法写入数据文件,尽管没有错误