我在一个文件夹中有一个存储库,不久前我将其拆分为子模块。
初始:(T0)
-mainpackage
\-subpackage1
\-subpackage2
当前:(T1)
-subpackage1
-subpackage2
-mainpackage
目前我可以从一开始就看到所有 git 历史记录。现在我想把这个 subpackage1 移到另一个 repo 中。
当我执行手术并过滤分支时,git filter-branch --subdirectory-filter <directory of subpackage1> -- --all
我会丢失 T0 和 T1 之间的历史记录,这是提交次数最多的。
当我用 跟踪历史时git log --follow --pretty=format:"%H" <filename>
,我看到同一个文件有两个版本,最新版本带有文件路径(如'subpackage/src/../filename')和只有文件名的旧提交(如'filename')。
如何恢复整个子模块(最佳情况)或特定文件(最坏情况 - 我只对 4-5 个文件的历史记录)的历史记录