【问题标题】:How do I merge a remote tfs branch into a git branch?如何将远程 tfs 分支合并到 git 分支中?
【发布时间】:2015-07-18 23:50:19
【问题描述】:

我需要将远程 tfs 存储库分支中的更改合并到 git 存储库分支中。

克隆会创建一个全新的 git 存储库,这是我不想要的。我想合并到现有的 git 存储库中。

澄清:

  • 几周前,一位同事克隆了 2 个 TFS 存储库:RepoARepoB
  • 那位同事离开了公司。
  • 我们决定我们想要一个单一的存储库,所以我将 RepoA 合并到 RepoB 中,如下所述:Merge two Git repositories without breaking file history
  • 从那时起,所有开发团队都在使用 RepoB,除了一个。
  • 一个团队继续开发并提交到 TFS 存储库。
  • 现在我们想让最终的团队开始使用 Git;我们需要将他们自原始克隆 (tfs-RepoA) 以来的工作合并到 Git 存储库 (RepoB)

【问题讨论】:

  • 你的问题不够清楚,很难在字里行间阅读:-(你能解释一下你做了什么来到达这里,更清楚地解释你想要什么以及为什么。我在git-tfs documentation about branches
  • 您应该能够将 TFS 远程添加到存储库 B,并使用 git tfs fetch 获取那里的更改。如果 TFS repo B 的原始提交在您的合并中没有更改,并且如果 TFS 远程具有相同的名称,那么 git-tfs 应该从它离开的地方开始,所以它应该只获取新的更改。之后,您可以再次合并分支。
  • @poke 如何将 TFS 远程添加到 RepoB?
  • 从仅包含来自 Ⓑ 的提交的分支中尝试 git tfs bootstrap

标签: git git-tfs


【解决方案1】:

我们决定需要一个存储库,因此我将 RepoA 合并到 RepoB 中,如下所述:合并两个 Git 存储库而不破坏文件历史记录

我不太明白你在这里做了什么,但我会假设这个操作没有太大的破坏性;)

我还假设(如果我理解良好的话)仍然使用 TFVC 的团队正在提交一个克隆到 RepoA 中的分支。

您要做的第一件事是验证您在来自RepoA 的提交中是否仍有 git-tfs 所需的 git-tfs 元数据。它们应该看起来像 git-tfs-id: [https://yourtfs/tfs/TFS16]$/vtccds/trunk;C26497

既然你找到了这些提交,那么就在从 TFS 检索到的最后一个分支上签出一个分支。

如果你有高于 v0.20 的 git-tfs 版本(如果需要更新),那么你只需要做一个git tfs fetch。如果您有旧版本,则在进行提取之前需要 git tfs bootstrap...

如果一切正常,经过很长时间,您应该拥有与在 TFS 上提交的团队的变更集相对应的所有提交。

然后,你可以用它做你想做的事情并合并分支......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 2012-01-02
    • 2018-12-20
    • 2020-04-04
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多