如何在一个分支的较旧提交与另一个无关分支的旧提交之间建立分支关系

问题描述 投票:0回答:1

i在州A处下载了项目的源代码(请参见下图)。这只是正常的下载,导致图像中c表示的本地源代码树。我没有使用

git clone
,因为当时我不熟悉
git
。然后,我在本地项目源代码中进行了一些编码,并且在熟悉
git
之后,我决定将此源代码树作为git存储库,这是图像中的d。做了一些更改和提交,我到达了F。我们将本地开发发生“分支#2”的分支机构。然后,我分叉了主要的开发分支,并将分支从叉子拿到一个名为“分支#1”的本地分支。目前,主要的开发分支在州B中。由于分支#1和分支#2没有共同的祖先,如果我将分支#2合并到分支#1中,我将获得此错误
fatal: refusing to merge unrelated histories
。可以通过使用
--allow-unrelated-histories
作为
git merge
的选项来解决此限制,但是根据此答案,这似乎是在此答案上皱眉了“拒绝合并无关的历史”失败,同时恢复了存储库。根据此答案,更好的方法是建立两个分支之间的分支关系。就我而言,应该在d和a.之间

    如何做?
  1. 事情是,当我下载代码时,我只知道围绕A的范围。我不知道确切的那个,因为那是很久以前。如果我有点想念A?

My problem in a schematic diagrameDit

建议的重复root root commit父母指向另一个提交(连接两个独立的git存储库)

并不完全处理相同的情况。在这个问题中,OP需要将分支(新分支)的根提交拼写为另一个分支(旧分支)的最后一个提交。就我而言,我想将分支的根提交与另一个不是最后一个提交的分支中的提交联系起来。公认的答案还假设旧分支的最后几个提交与新分支的前几个提交相同。建议答案的最终结果是线性历史记录。虽然我想实现的目标,但两个独立分支的历史都存在,好像它们共享一个共同的祖先。

修理有一个本地存储库,所有这些历史记录都可用,并假设

A
git git-merge
1个回答
0
投票
C

git checkout -b my-stuff A
git cherry-pick C..F

现在您的东西连接到
A


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.