我已经将存储库从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_A
和file_B
,但预期结果应该仅为file_B
,因为它是最后一个存在的文件合并分支(branch_0.3.0
)。
在进行分支的程序合并之前,我还尝试了删除所有文件(git rm -r .
),但是随后遇到一个问题,其中file_B
不存在(在执行{{1 }}),但在HEAD /其他分支中进行了编辑。
有人可以给我一些指导以解决此问题,也可以让我知道是否需要更多信息。
干杯, DD。
答案 0 :(得分:0)
如果您创建的三个分支位于另一个分支之后,例如:
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