从 TFS 迁移后合并 GIT 中的分支

Merge branches in GIT after migration from TFS

我们的 TFS 存储库只有一个分支 "Main"。然后我们将它分支到另一个,"Main-MERGE"。两者都是长期分支,但在某些方面我们进行了一些合并。一切正常。

现在我们使用 git-tfs 将整个存储库迁移到 GIT。一切似乎都很好,我们正在 GIT.

的两个分支上工作

好吧,现在我们决定合并 "Main-MERGE" -> "Main" 以便只有一个 "master" 分支。但这似乎是不可能的。使用合并没有冲突,结果不符合预期。似乎重写然后合并。

是不是说,分支迁移到TFS后就不能像TFS那样合并文件了?历史上一切似乎都很好。迁移的提交似乎与 parents 有关。如何找到问题并合并分支?

更新:

您应该能够合并正常迁移后的提交。就像您正在开发一个新的 git 存储库一样。对于从 TFS 迁移的其他旧提交,您将能够看到它们的历史信息。但是您无法合并单个提交,它们在您的 Azure DevOps 存储库中绑定在一起作为一个新的提交。

Op 最终将更改返回到 TFS,然后合并并迁移回 GIT。花了一些时间,但还可以。


TFVC 和 Git 中的合并存在一些差异:

  • TFVC 中的合并发生在文件级别,而不是整个存储库。 您只能将一个分支中已更改文件的子集合并到 另一个,然后将剩余的更改文件合并到后续 变更集。
  • 在Git中,合并会影响整个存储库,您看不到 两组单独的更改作为合并。

在计划迁移时,您应该为 Git 选择一个新的分支策略。

不知道为什么在迁移后无法在 Git 中执行合并。建议你仔细检查你的整个过程,如果有遗漏或错误。您可以通过逐步门户网站参考此博客:Migrating from TFVC to Git (for large repositories)

但是在你的情况下,因为你要合并这两个分支并且在你的 Git 回购中只有一个 "master" 分支。

更好的方法是在从 TFVC 迁移到 Git 之前进行合并。您可以首先在 TFVC 中拥有唯一的 "master" 分支。之后你可以在 Git Repo.

中基于迁移的 master 分支创建一个分支

此外,由于通过这种方式只迁移了一个分支。仅迁移主分支支持基于主题分支的工作流。您也可以考虑使用 TFVC 导入工具.

有关从 TFVC 迁移到 Git 的更多详细信息,请查看我们的官方教程 here