将几个github存储库迁移到一个存储库并仍保留提交历史记录

时间:2015-01-03 03:36:50

标签: git github

我已经从一些电子商务网站上写了一些抓取商品数据的项目。我组织了 它们分成几个github repos,这意味着抓取存储在名为walmart的github仓库中的walmart的项目。所以我有几个像沃尔玛一样的回购,现在是最好的。我想将这些repos迁移到另一个repo并仍保留提交历史记录。谷歌之后,我找不到一个有用的方法来尝试。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

假设你想要一个看起来像

的回购
/rootOfTheRepo
  .git
  /walmart
  /bestbuy

你能做的是:

  • 通过将文件移动到最终仓库中的文件来准备子项目
  • 进入其中一个仓库并从另一个
  • 获取提交
  • 合并两个master分支

在bash中,它看起来像是来自你的本地克隆:

cd /path/to/walmartRepo
mkdir walmart
git mv file1 file2 dir1 dir2 walmart
git commit -am "Moved files"

cd /path/to/bestbuyRepo
mkdir bestbuy
git mv file1 file2 dir1 dir2 bestbuy
git commit -am "Moved files"

git remote add walmart /path/to/walmartRepo
git fetch --all
git merge walmart/master

一旦你这样做,你的besbuy回购已经变成了一个新的全球回购。你只需要在github上创建一个相应的repo,并在那里推送这个新的提交。