【发布时间】:2018-04-30 12:33:50
【问题描述】:
我的目录结构如下:
父/包含 孩子1/ 儿童2/ ... 孩子N/
每个子目录都是其自己的 git 存储库,其中包含提交历史等。我已经意识到,将 Parent 设置为带有子存储库的 git 存储库(可能使用 git-subtree 或其他东西)会更有意义。这是因为子目录都是同一个项目的组件。
我查看了各种答案,但它们都涉及从某个远程仓库推/拉,而在这种情况下,一切都是我的机器本地的(我想保持这种方式——另外,我不知道如何使用遥控器)。
所以我的问题是:我如何创建父存储库,使子存储库成为其中的一部分,但保留他们各自的历史,而不参考任何远程存储库?
这与建议的副本不同的原因: 有关远程存储库位于本地硬盘驱动器上的链接很有帮助,并且肯定会使 SO 上的其他答案更易于访问。我刚刚尝试了有关合并两个存储库的链接问题中的程序,它几乎可以完成这项工作,但在我的情况下很费力且容易劳动。在那个问题中,将合并两个存储库以创建第三个存储库,而在我的情况下,许多存储库需要成为新存储库的目录。
要使用建议的重复答案,我必须复制 Parent,比如 Parent_copy,然后从 Parent 中删除所有内容,创建 Parent .git 目录,然后一次合并一个 Child 目录。在此过程中,每个 Child 的内容要么从 Parent_copy/Child 复制到 Parent,要么被忽略(基于 .gitignore 文件)。然后我可以重新创建例如Parent/Child1 作为一个空目录,从 Parent 中移动文件,并从 Parent_copy/Child1 中复制忽略的文件。所以它会起作用,但有点费力且容易出错。我想知道有没有更有效的方法,理想地处理子目录?
【问题讨论】:
-
一个remote repo can be on the local hard drive。请参阅this SO 以组合 repos(重写历史记录)。
标签: git