为何git查询指定文件日志时无法显示还原提交与被还原提交
问题原因
这是Git路径查询的默认**历史简化(History Simplification)**特性导致的。
当你给git log指定具体文件路径时,Git默认会自动简化返回的提交历史,只保留对该文件当前最终内容有实际影响的提交。
你遇到的场景刚好符合被过滤的规则:
- 提交
6206b798修改了drivers/net/ethernet/qlogic/qed/qed_mcp.c文件 - 后续的revert提交
91bed556完全撤销了6206b798对该文件的所有改动,两个提交的修改相互抵消后,该文件的最终状态和这两个提交出现之前完全一致
Git判定这两个提交对该文件的最终内容没有留下任何影响,所以默认就把它们从该文件的日志查询结果中过滤掉了。
解决方案
如果需要查看所有修改过该文件的提交(包括改动被后续提交抵消的记录),只需要添加--full-history参数关闭默认的历史简化逻辑即可:
git log --oneline --full-history drivers/net/ethernet/qlogic/qed/qed_mcp.c
执行上述命令后就能看到你要找的还原提交和被还原提交记录。
内容的提问来源于stack exchange,提问作者Li Chen
相关产品推荐
相关产品推荐

