我在同一个父文件夹中有两个存储库,我希望在父文件夹中合并,如果可能的话,保留历史记录而没有最小差异。
parent/
--code1/.git
--code2/.git
我想:
parent/.git
--code1
--code2
是否可以这样做并保留两者的历史记录?或者至少是code1文件夹?不幸的是,两个回购中都有一些同名的分支。什么是理想的是在提交日期以.git提供两个历史记录,但我还没有找到一个简单的解决方案(一个复杂的是,git mv显示提交之前/之后的差异,所有文件都已更改,但我们可以活用那个)。
答案 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
编辑:我错过了你还想保留code1
和code2
个文件夹的部分。当您合并两个存储库时,这实际上是不可能的,因为它正在执行它所说的:将它们合并到父文件夹中。您将手动将源文件移动到code1
和code2
之后再做进一步的承诺。