如何将两个git repos合并到父文件夹中的一个repo中?

时间:2016-03-22 13:55:28

标签: git

我在同一个父文件夹中有两个存储库,我希望在父文件夹中合并,如果可能的话,保留历史记录而没有最小差异。

parent/
--code1/.git
--code2/.git

我想:

parent/.git
--code1
--code2

是否可以这样做并保留两者的历史记录?或者至少是code1文件夹?不幸的是,两个回购中都有一些同名的分支。什么是理想的是在提交日期以.git提供两个历史记录,但我还没有找到一个简单的解决方案(一个复杂的是,git mv显示提交之前/之后的差异,所有文件都已更改,但我们可以活用那个)。

2 个答案:

答案 0 :(得分:0)

您只想将两个不同的存储库(第一个和第二个)合并为一个新存储库,同时保留两个git历史记录:

创建一个新的git存储库并进行初始提交:

mkdir newRepository
git init
touch .gitignore
git add .gitignore
git commit .gitignore -m 'init'

获取并合并第一个:

git remote add first pathTo/first
git fetch first
git merge first/master

获取并合并第二个:

git remote add second pathTo/second
git fetch second
git merge second/master

答案 1 :(得分:0)

您应该可以使用git pull方法。

执行以下操作:

$ git init
$ git pull code1
$ git pull code2

这应该创建一个合并..接受合并(修复冲突,如果有的话)..

要将分支拉入父git仓库,您可以执行以下操作:

$ git checkout -b branchName
$ git pull code1 branchName

编辑:我错过了你还想保留code1code2个文件夹的部分。当您合并两个存储库时,这实际上是不可能的,因为它正在执行它所说的:将它们合并到父文件夹中。您将手动将源文件移动到code1code2之后再做进一步的承诺。