我想将一个存储库合并到另一个存储库的文件夹中。
当前,它看起来像这样:
我有多个存储库,例如A,B,C ..
-> A
.git
-> B
.git
-> C
.git
然后我只有一个存储库,例如R,它包含文件夹A,B,C(不是git存储库,而只有包含与以前的A,B,C git存储库几乎相同的东西的文件夹):< / p>
-> R
.git
A
B
C
我想将A存储库与R存储库中的A文件夹合并,将B存储库与R存储库中的B文件夹合并,等等。
什么是最佳解决方案?
答案 0 :(得分:1)
git存储库中分支的tree
的结构确定了合并结果。我不相信您可以说“从此远程主机合并此分支,但将其合并到此文件夹中”,因为这将需要git重新解释所有tree
对象。
我不确定您可以使用仓库A,B和C来做什么,但是如果我将仓库A重组为具有一个模仿“ R”的“ A”文件夹,我可以例如将git merge repoA/master --merge-unrelated-histories
添加为远程对象后的repoA
。
zrrbite@ZRRBITE MINGW64 /d/dev/git/repotest (master)
$ git fetch repoA
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From D:/dev/git/repotest_A
b73c55c..0b2748b master -> repoA/master
zrrbite@ZRRBITE MINGW64 /d/dev/git/repotest (master)
$ git merge repoA/master --allow-unrelated-histories
Merge made by the 'recursive' strategy.
A/file_from_A.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 A/file_from_A.txt
zrrbite@ZRRBITE MINGW64 /d/dev/git/repotest/A (master)
$ ls
file_from_folder_A.txt file_from_repo_A.txt
如果我有相同名称的文件,例如file_from_folder_A.txt
,然后我将简单地解决合并冲突:
zrrbite@ZRRBITE MINGW64 /d/dev/git/repotest (master)
$ git merge repoA/master --allow-unrelated-histories
CONFLICT (add/add): Merge conflict in A/file_from_folder_A.txt
Auto-merging A/file_from_folder_A.txt
Recorded preimage for 'A/file_from_folder_A.txt'
Automatic merge failed; fix conflicts and then commit the result.
zrrbite@ZRRBITE MINGW64 /d/dev/git/repotest (master|MERGING)
...