我正在寻找将git repo中的子目录拆分为一个子模块,同时保留(已修改的)历史记录的方法。 (我已经尝试了子树,但是就推动更改的容易性而言,它不符合我的需求。)
我拆分子目录subproj
的想法如下:
myproj-new
subproj
subproj
设为myproj-new
的子仓库myproj
的提交myproj-new
的主站点上我希望git能够认识到subproj
是一个子模块,并将在此直接对该子目录进行任何更改。
不幸的是,这没有按预期自动完成。结果是,对子模块目录的更改未在子模块subproj
中提交,但仍在myproje-new
存储库中提交。
我希望创建一个历史记录,看起来好像子目录一直是子模块。
以下程序原则上正确吗?
有什么方法可以自动执行此操作? (子模块中的提交消息应与父仓库的消息重复。)