Git子模块迁移路径后,如何追踪其完整提交历史?
Git子模块路径变更后追踪完整提交历史的方法
当然可以追踪路径变更前后的所有记录,以下是两种实用方法:
方法一:用--follow参数自动追踪重命名历史
直接执行这条命令:
git log --follow <新子模块路径>
--follow参数会让Git识别子模块的路径变更(不管是git mv还是手动移动后提交的变更),自动关联旧路径下的提交记录,输出完整的历史时间线。
方法二:手动合并新旧路径的历史记录
如果--follow因为特殊场景不生效,可以分别获取新旧路径的历史再合并:
- 先查旧路径下的子模块提交:
git log <旧子模块路径> - 再查新路径下的:
git log <新子模块路径> - 把两次输出按提交时间排序,就能得到完整的变更记录。
注意事项
- 要是你当初是手动移动子模块目录而非用
git mv,得先确保路径变更已经被提交到宿主仓库,否则Git没法识别这是重命名操作。 git mv本身会被Git标记为重命名事件,配合--follow是最省心的解决方式。
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

