将模块从一个仓库移动到另一个仓库

时间:2017-03-06 08:38:15

标签: git github

我对git比较陌生,我需要做以下几点。

  1. 给定一个模块X,在回购A中,我想将X移动到回购B
  2. 我需要这样做,同时保留某些作者的历史。即保留'joe'和'bob'的提交历史并注明其他。
  3. 关于我如何做到这一点的任何想法?

    谢谢!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

首先添加' repo a'本地

git remote add repoa https://github.com/user/repoa.git

然后对该回购进行git推送

git push repoa

Likewis eadd' repo b'本地

git remote add repob https://github.com/user/repob.git

然后对该回购进行git推送

git push repob

这样做会推高整个存储库的当前状态。

现在单独克隆存储库:

cd /path/where/you/want/new/repos/to/be
git clone https://github.com/user/repoa.git repoa
git clone https://github.com/user/repob.git repob

(其中repoa作为第二个参数是你要克隆的目录)

以及每次运行git rm -r,其中包含要从该回购中删除的目录/文件,例如repo-a:

git rm -r src/repob docs/repob

对repo-b重复上述步骤。

然后,对于每个存储库,运行以下命令以暂存提交的删除:

git add -u

然后按照惯例进行提交:

git commit -m "Deleted files from repo b"

然后按

git push origin

再次为repo-b重复最后3个命令。

这将创建两个单独的存储库,其中包含repo中所有文件的完整历史记录,遗憾的是,我不知道如何保留“repo”中的文件的历史记录。