如何将git存储库移至文件夹并将另一个存储库合并为原始库?

时间:2018-08-09 08:34:15

标签: git bitbucket

我有一个 httpdocs 文件夹的git存储库。我让某人为一个模块编写了一些代码,该模块位于 httpdocs 中。这被存储在单独的存储库中。他还编写了一些位于httpdocs之上的代码。我想将所有内容合并到一个存储库中。

回购1:(httpdocs)

/

回购2 :(根)

/src
/vendor
/httpdocs/sites/all/modules/custom_module

我如何将 Repo 1 上移至一个级别并将所有内容放置在名为httpdocs的文件夹中,然后与 Repo 2 合并,同时保留历史记录?

1 个答案:

答案 0 :(得分:0)

这就是git merge命令的subtree strategy option的作用。

回购协议2(根目录之一)应该是您进行合并的位置。您将仓库1添加为远程仓库,并按照git merge -Xsubtree=/httpdocs/sites/all/modules/custom_module httpdocs/master进行合并。

不要害怕做实验;如果您第一次遇到错误,只需重设为起点并重新开始。在将结果推回中央存储库之前,没有关系。

请注意,如果您以后在Repo 1中进行了一些更新,则git应该能够弄清楚重新合并的路径,因此git merge -ssubtree httpdocs/master应该可以工作。但是第一次您必须告诉它将子模块放置在何处。