如何将多个代码仓库迁移到单一仓库并保留提交历史?

17 浏览
0 Comments

如何将多个代码仓库迁移到单一仓库并保留提交历史?

我试图将几个Git仓库迁移到一个单一仓库。

我有两个项目仓库,让我们称它们为project1project2。在我的单一仓库中,我想要有一个projects目录,其中包含两个子目录project1project2。每个子目录应该包含对应项目的文件,并保留Git历史记录。

使用标准的Git命令是否可能实现这一点?

注意:我已经看过Lerna - lerna import正好满足我的需求,但不幸的是它仅适用于JavaScript项目,而我的一个项目是Ruby项目。

0
0 Comments

多个代码仓库合并成一个单一代码仓库,同时保留提交历史记录是可行的。具体步骤如下:

1. 将文件分别移动到单一代码仓库的project1和project2文件夹中:

- 在第一个代码仓库(repo1)中,执行以下操作:

     # 在本地repo1中
     mkdir project1
     mv * project1
     git add .
     git commit -m '将文件移动到project1文件夹中'
     git push
     

- 在第二个代码仓库(repo2)中,执行以下操作:

     # 在本地repo2中
     mkdir project2
     mv * project2
     git add .
     git commit -m '将文件移动到project2文件夹中'
     git push
     

2. 将这两个代码仓库合并成一个单一代码仓库:

- 在任何一个本地代码仓库中(例如在本地的repo1中),执行以下命令:

     # 在本地repo1中
     git remote add repo2  -f
     git pull repo2 master --allow-unrelated-histories
     

以上步骤完成后,多个代码仓库将被合并到一个单一代码仓库中。然而,如果想查看project1之前的所有提交记录,例如执行`git log -- project1`命令,将只显示一个提交记录(即'move files into project1 folder')。是否有什么办法解决这个问题呢?

0