【问题标题】:Moving different projects tracked by git into one repository将 git 跟踪的不同项目移动到一个存储库中
【发布时间】:2025-11-26 01:00:01
【问题描述】:

我在一个目录中有几个密切相关的项目,我希望它们都被同一个 git 存储库跟踪。

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

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

【问题讨论】:

标签: git version-control


【解决方案1】:

使用filter-branch 将存储库中的所有历史记录移动到您希望它们在结果存储库中的位置。在其中一个存储库中,添加一个指向另一个存储库的遥控器。做一个提取,你会在同一个。您将有单独的分支用于每个工作。进行合并,从那时起,您将在一个公共分支中跟踪两者的更改 - 如果这是您想要做的。

希望这会有所帮助。

【讨论】:

  • 你能指点git filter-branch的一些文档吗?
  • 我认为您的情况根本不需要 filter-branch 。只需按照亚当从第二句话开始所说的话。
  • 我是一个极端的 g​​it 新手。 “添加遥控器”是什么意思?我应该使用什么类型的合并?
  • 你确实想做过滤器分支,因为你可能有一些文件被称为相同的东西。过滤器分支将允许您移动整个历史记录,就好像您已经完成了更深一层的工作。
  • 添加远程是注册另一个存储库的 url 或文件位置,以便您可以将更改从当前存储库推送到另一个存储库。请参阅git remote 的手册页。
最近更新 更多