如何将多个代码仓库迁移到单一仓库并保留提交历史?
多个代码仓库合并成一个单一代码仓库,同时保留提交历史记录是可行的。具体步骤如下:
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')。是否有什么办法解决这个问题呢?