【发布时间】:2021-07-06 12:10:26
【问题描述】:
我正在尝试重新组织我的代码目录并合并两个不相关的 Git 存储库。两个仓库都是本地的。
我在这里发现了一个类似的问题:How do you merge two Git repositories?
...但是解决方案对我不起作用。我在 cmets 部分中对此进行了询问,另一位用户建议我将我的问题作为一个单独的问题提出。
我创建了一个测试/沙盒环境来测试解决这个 Git 合并问题。我的设置是:
/home/dir01/merge_repos # this is the sandbox dir
|
/home/dir01/merge_repos/old_dir_01/old_repo # git init was done here; .git directory exists here
/home/dir01/merge_repos/old_dir_01/old_repo/source_file_01.py
/home/dir01/merge_repos/old_dir_01/old_repo/source_file_01.py
|
/home/dir01/merge_repos/new_repo # git init was also done here.
我想将 old_repo 中的文件与 new_repo 中的 Git 存储库合并。
根据原始问题中提供的解决方案,我执行了以下操作:
-
我在 new_repo 下创建了一个虚拟文件,然后对该虚拟文件进行了 git add 和 git commit。
-
在 new_repo/ 目录下,我发出了 >
git remote add old_repo /home/dir01/merge_repos/old_dir_01/old_repo -
git fetch old_repo --tags -
git merge --allow-unrelated-histories old_repo/master
在第 4 步,Git 抱怨 --allow-unrelated-histories 是一个未知选项。
所以我尝试了没有 --allow-unrelated-histories 选项的git merge。这没有用; Git 向fatal: old_repo/master - not something we can merge 投诉。
我的问题是,我可以使用低于 v2.9 的 Git 版本对两个不相关的 Git 存储库进行 Git 合并吗?
我正在使用 Git v1.8.3.1。
【问题讨论】:
-
“我正在使用 GIT v 1.8.3.1” 好的,有人会问为什么吗? Git 2.9 是五年前的事了。 5年!用计算机术语来说,这就是一生。 2.31 现在我们在做什么?
-
我实际上建议尝试类似this:
# in proj2: git remote add proj1 path/to/proj1; git fetch proj1; git merge proj1/master # or whichever branch you want to merge,是的,你应该绝对将你的 Git 升级到 2.25 或更高版本 -
注意:安全漏洞.....github.blog/…。另请阅读:serverfault.com/questions/709433/…
-
@matt,我使用了 Centos v7.7 附带的那个。直到现在才发现不需要升级 GIT。
-
1) 阅读我的链接中的主题以解决您的问题。 2) 升级你的 Git ......因为你需要 :) PS:Centos 7 已经 6 岁多了 - 它有很多过时的软件包并不奇怪。