所以我的问题是这样的:我有两个不同的存储库,我需要制作一个不同的,新的 - 包含这两个文件。然而,存储库共享一些文件(例如main.c),我想手动合并...我试图将repos与本教程合并:http://blog.caplin.com/2013/09/18/merging-two-git-repositories/,但是我只得到一个main的“副本”。 C。也许我不明白git是如何工作的(我对它很新),但我真的需要git给我两个文件,然后我可以手动更改并制作成一个新的main.c ...我希望我我已经明确了我的问题......我可以制作这些存储库的两个不同的工作副本,复制内容并制作一个新的回购......然后历史会丢失,对吗?
答案 0 :(得分:0)
使用git add remote
- http://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
克隆第一个遥控器以在本地创建初始文件集 - http://git-scm.com/docs/git-clone
然后使用git pull [remote2]从其他存储库中获取文件 - http://git-scm.com/docs/git-pull
然后解决任何代码冲突。
然后,如果需要,为新的repo添加第三个遥控器并将代码推送到该处理器。
答案 1 :(得分:0)
您需要选择一个中心点。对于project_a,这将是https://path.toyourproject.com/p/project_a中的默认代码存储库。首先检查它并将其所有内容移动到子目录中:
$ git clone https://path.toyourproject.com/p/project_a
$ cd project_a
$ mkdir project_a-cli
$ git mv * project_a-cli
$ git commit -a -m "Move."
然后您就可以开始处理辅助存储库的合并了。例如,https://path.toyourproject.com/p/project.testers
第一步是将该辅助存储库拉入您的中心点
$ git remote add origin-testers https://code.google.com/p/project.testers
$ git fetch origin-testers
将其签入临时分支并将其所有内容移至子目录
$ git branch merge-testers origin-testers/master
$ mkdir project.testers-testers
$ git mv * project.testers-testers
$ git commit -a -m "Move."
将两个存储库合并为一个
$ git checkout master
$ git merge merge-testers
<强>清理强>
$ git branch -d merge-testers
$ git remote remove origin-testers
之后手动解决冲突。您可能想为Git安装可视化差异工具。