永久性地将git repo合并到主repo,保留历史记录

Permanently merge a git repo to a main repo, keeping history

我们有一个主要的repo Core,在这里我们维护我们在许多项目中使用的库。

我在一个单独的repo ErrorHandling中开发了一个库,现在我想永久地合并到Core,同时保留提交历史。

这有可能吗?


正如注释所述,子树合并在"如何将现有Git存储库导入另一个存储库"中描述。基于Github的文章"使用子树合并",比Git手册中介绍的基本子树合并(主要是git merge -s ours步骤)要完整一些。

1
2
3
4
5
git remote add errorHandlingRepo server:errorHandling.git
git fetch errorHandlingRepo
git merge -s ours --no-commit errorHandlingRepo /master
git read-tree --prefix=errorHandling/ -u errorHandlingRepo/master
git commit -m"Imported errorHandling as a subtree."

You can track upstream changes like so:

1
 git pull -s subtree errorHandlingRepo master