将由Git跟踪的不同项目移动到一个代码库中

3

我有一个目录下有几个相关的项目,并且我希望它们都被同一个git仓库跟踪。

现在我有两个目录thing1thing2,它们都在父目录things中。每个目录都有自己的.git。我想在things目录中有一个.git,它包括boththing1thing2的所有历史记录。

我的问题本质上与this one相同,但是有两个(或一般任意数量的)目录而不是一个。


1
这与stackoverflow上的此问题非常相似。 - Andrew Spott
1个回答

2
使用filter-branch将所有历史记录移动到最终存储库中希望它们在的位置。在其中一个存储库中,添加一个指向另一个存储库的远程。进行获取(fetch)操作,然后两个存储库就在同一个存储库中了。您将为每个工作单独创建分支。执行合并操作后,从那时起,您将在一个公共分支中跟踪对两个存储库所做的更改 - 如果这是您想要的结果。
希望这可以帮助您。

你能指出一些关于 git filter-branch 的文档吗? - Dan
1
我认为在你的情况下根本不需要使用filter-branch。只需按照Adam从第二句话开始说的做即可。 - holygeek
我是一个极度初学者,不太懂Git。"添加远程"是什么意思?我应该使用哪种类型的合并? - Dan
1
你确实想要进行筛选分支,因为你可能有一些文件的名称相同。筛选分支将允许你将整个历史记录移动到一个更深层次,就好像你在更深的层次上完成了工作一样。 - Adam Dymitruk
1
添加远程仓库是为了注册另一个仓库的URL或文件位置,以便您可以从当前仓库将更改推送到该另一个仓库。请参阅git remote的手册页面。 - Adam Dymitruk
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接