Git合并问题无关的分支历史

问题描述

我已经将存储库从svn转换为git,该存储库在svn中具有自定义结构,并且我必须从主干的目录结构中提取分支。迁移的git分支为:

branch: origin/branch_0.1.0
    contents: file_A
    change: created file_A

branch: origin/branch_0.2.0
    contents: file_B
    change: removed file_A,created file_B

branch: origin/branch_0.3.0
    contents: file_B
    change: edited file_B

在这里您可以注意到,我没有一个master分支,该分支是在后期处理中通过将上述所有提取的分支与git merge -X theirs --allow-unrelated-histories origin/<branch>的合并命令按顺序合并而创建的,如果存在未合并的文件,另外运行git add -A && git commit -m "<msg>"。我遇到的问题是最后一个master分支最终同时拥有文件file_Afile_B,但预期结果应该仅为file_B,因为它是最后一个存在的文件合并分支(branch_0.3.0)。

在进行分支的程序合并之前,我还尝试了删除所有文件git rm -r .),但是随后遇到一个问题,其中file_B不存在(在执行{{1 }}),但在HEAD /其他分支中进行了编辑。

有人可以给我一些指导以解决此问题,也可以让我知道是否需要更多信息。

干杯, DD。

解决方法

如果您创建的三个分支位于另一个分支之后,例如:

  • 如果origin/branch_0.2.0基于origin/branch_0.1.0
  • origin/branch_0.3.0基于origin/branch_0.3.0

您的master分支的起点只是origin/branch_0.3.0

git branch master origin/branch_0.3.0
git checkout master