我有两个代码库,Code base-1,Code Base-2。
我运行命令......
git init
git add .
git commit -m "Initial Commit"
...在两个存储库(目录)中。
code base-1和code base-2之间存在代码差异。
我不能分支他们,因为他们已经包含约0.1%的差异。文件名是相同的,但代码有一些细微的编辑。
有没有办法合并两个存储库之间的差异?
编辑:
例如,假设我有以下内容。这就是我的开始。代码库1和2之间存在细微差别。
[oldest code case]
code-base-1/
code-base-1/.git [git stuff with already created repo]
code-base-1/file1
code-base-1/file2
code-base-2/
code-base-2/.git [git stuff with already created repo]
code-base-2/file1
code-base-2/file2
理想情况下,我可以删除code-base-2,因为它更新一点。
我如何合并这些代码库,以便我最终得到一个包含合并文件的文件?
答案 0 :(得分:8)
问题可能来自这两个不同的存储库(具有不同的SHA-1第一个节点),而不是一个克隆然后修改的repo。
这意味着“git fetch
”可能还不够。
你可以简单地使用外部工具(在Git外部)将CB2(Code-Base-2)的内容合并到CB1中,就像问题“{{中所建议的WinMerge一样3}}”。
另一种选择是使用一些嫁接技术来完成抓取:请参阅问题“Merging in changes from outside a git repository”
$ cd project1
$ git config remote.project2.url /path/to/project2
$ git config remote.project2.fetch 'refs/heads/*:refs/project2/*'
$ git fetch project
另外修改移植文件(.git/info/grafts
)以将project2的提交链接到project1。
答案 1 :(得分:4)
尝试:
cd code-base-1
git fetch ../code-base-2 master:code-base-2
git merge code-base-2
答案 2 :(得分:-2)
按照您的描述创建第一个存储库。
在第二个文件夹中创建一个名为“.git”的文件,内容为:
gitdir: <path-to-first-repository>/.git
在第二个存储库中,您现在可以运行git diff,git add / commit等来合并您的更改。