Git: 在不丢失历史的情况下将两个独立的回购合并为一个
Git: Combining two independent repos to one without losing the history
我得到了两个具有以下文件夹结构的存储库:
> folder1
>.git
> file1
> file2
> folder2
>.git
> file3
> file4
现在我想创建一个新的存储库,将两个以前独立的根文件夹组合在一个共同的根目录下:
> repo
>.git
> folder1
> file1
> file2
> folder1
> file3
> file4
我如何在 Git 中做到这一点而不丢失以前独立存储库的历史记录?
您可以找到解决方案 here。
基本上,
- 创建一个新的 repo
- 从您的一个存储库中合并
- 移动文件
- 重复
我猜下面的内容应该有效:
调整 repo folder1
以具有正确的内部结构。
cd folder1
mkdir folder1
git mv file1 folder1/file1
git mv file2 folder1/file2
git commit -a
回购也是如此 folder2
。
cd folder2
mkdir folder2
git mv file3 folder2/file3
git mv file4 folder2/file4
git commit -a
用git pull
把一个拉进另一个
cd folder1 # the top one, not the one we have created in the 1st step.
git pull /path/to/folder2
或者,或者,将两者合并到新创建的存储库中。
mkdir repo
cd repo
git init
git pull /path/to/folder1
git pull /path/to/folder2
我得到了两个具有以下文件夹结构的存储库:
> folder1
>.git
> file1
> file2
> folder2
>.git
> file3
> file4
现在我想创建一个新的存储库,将两个以前独立的根文件夹组合在一个共同的根目录下:
> repo
>.git
> folder1
> file1
> file2
> folder1
> file3
> file4
我如何在 Git 中做到这一点而不丢失以前独立存储库的历史记录?
您可以找到解决方案 here。
基本上,
- 创建一个新的 repo
- 从您的一个存储库中合并
- 移动文件
- 重复
我猜下面的内容应该有效:
调整 repo
folder1
以具有正确的内部结构。cd folder1 mkdir folder1 git mv file1 folder1/file1 git mv file2 folder1/file2 git commit -a
回购也是如此
folder2
。cd folder2 mkdir folder2 git mv file3 folder2/file3 git mv file4 folder2/file4 git commit -a
用
把一个拉进另一个git pull
cd folder1 # the top one, not the one we have created in the 1st step. git pull /path/to/folder2
或者,或者,将两者合并到新创建的存储库中。
mkdir repo cd repo git init git pull /path/to/folder1 git pull /path/to/folder2