如何将现有的github回购添加到新的回购?这不是"合并"因为我的目的是将现有仓库中的文件添加到新的仓库中,保留所有文件的文件夹结构和历史记录。
我有3个不同的回购
github.com/foo/1.git
github.com/foo/2.git
github.com/foo/3.git
每个人都有一组文件夹和文件。
我正在创建一个名为4(github.com/foo/4.git)的新东西,我想添加现有的回购。
我做了类似的事情:
git clone github.com/foo/4.git
git clone github.com/foo/1.git
cd 4
git remote add 1 ../1
git fetch 1
git branch 1-master 1/master
git merge 1-master
我提交之后,我发现1中的文件和文件夹被直接复制到4中。
让我说我的abc.txt低于1,然后我最终看到abc.txt低于4。
我真正想看到的是4/1 / abc.txt而不是4 / abc.txt,并保留了abc.txt的历史记录。
我该怎么做?
在旁注中,我在开始添加以下内容之前阅读了这篇文章:http://blog.caplin.com/2013/09/18/merging-two-git-repositories/
答案 0 :(得分:0)
您希望合并其他repos的完整历史记录,但在重写它们之后将其整个历史记录移动到子文件夹中。
这就是git filter-branch
的用途。
对于每个子目录:
git merge
或(如果你想重写主人的历史记录)git rebase
将获取的(并且已经重写过的)遥控器放入主人的主要分支。