将git子目录拆分为子模块保存历史记录

时间:2019-08-04 07:21:29

标签: git

我正在寻找将git repo中的子目录拆分为一个子模块,同时保留(已修改的)历史记录的方法。 (我已经尝试了子树,但是就推动更改的容易性而言,它不符合我的需求。)

我拆分子目录subproj的想法如下:

  1. 创建新的仓库myproj-new
  2. 创建新的仓库subproj
  3. subproj设为myproj-new的子仓库
  4. 获取原始myproj的提交
  5. 将这些提交重新部署到myproj-new的主站点上

我希望git能够认识到subproj是一个子模块,并将在此直接对该子目录进行任何更改。

不幸的是,这没有按预期自动完成。结果是,对子模块目录的更改未在子模块subproj中提交,但仍在myproje-new存储库中提交。

我希望创建一个历史记录,看起来好像子目录一直是子模块。

以下程序原则上正确吗?

  1. 对于历史记录中的每个变更集,修改工作目录。
  2. 然后将所有更改提交到子模块,
  3. 在对父仓库提交更改之前,包括子模块的新哈希。

有什么方法可以自动执行此操作? (子模块中的提交消息应与父仓库的消息重复。)

0 个答案:

没有答案
相关问题