【问题标题】:Migrate GIT commits to existing TFS将 GIT 提交迁移到现有 TFS
【发布时间】:2018-05-21 18:53:03
【问题描述】:

我有以下场景:

  • 客户端正在使用 TFS 源代码控制。那里已经有一个存储库,其中包含应用程序的版本 A
  • 为 TFS 存储库创建了一个 GIT 存储库。这不是使用 git-tf 或任何其他应用程序制作的,而是手动将 TFS 中的文件夹复制到 GIT 文件夹中
  • 已在 GIT 存储库上完成工作,现在它包含应用程序的版本 B

我们现在想要实现的是将在 GIT 上进行的所有提交移动到 TFS 中,以便 TFS 将包含应用程序的版本 B 并在 TFS 上进行一个(或多个)签入以查看从版本 A 更改为版本 B。

到目前为止,我发现如果 GIT 存储库是使用来自 TFS 源的 git-tf 创建的,则可以使用 git-tf 来实现此目的。既然我们不是这种情况,有没有另一种方法可以自动检索在 GIT 上修改过的文件并将它们签入到 TFS 上?

谢谢,

【问题讨论】:

  • 你为什么不直接使用 git repo?
  • @Someone TFS 也支持 Git,如果你的意思是你在本地 Git 或其他第三个 Git 中进行版本控制,并想迁移到 TFS Git,那么你只需要删除当前源并添加 TFS作为原点,然后将更改推送到 TFS。 (git remote -v git remote remove origin git remote add origin http://server:8080/tfs/collectionlc/_git/xxx)。如果您想使用 TFVC,请按照下面 MrKekson 的回答。
  • @Someone 您是否通过以下答案解决了这个问题,任何更新?
  • 大家好,很抱歉这么长时间没有回复,假期和所有这一切都是一个忙碌的时期。我们用 git-tfs 搞砸了,因为 git 是从源代码手动创建的并且缺少部分,我们最终创建了一个脚本来从 git 获取提交和文件并将它们复制到 tfs 源并在那里签入。

标签: git tfs migration


【解决方案1】:

我使用git-tfs 来迁移我们的存储库。它可以处理分支,如果需要,甚至可以进行 2 路同步。文档有时有点模糊(来源可用:P)。但是你可以用它同步一个 tfs 和一个 git repo。我认为它可以将你的 git 提交压缩到一个 tfs 签入中,但最坏的情况是每个 git 提交都将是一个 tfs chk-in。

祝你好运:D

【讨论】:

    【解决方案2】:

    是的 git-tfs 可以帮助你:

    1. 'git tfs quick-clone' 给出最后一次共同提交
    2. 然后将远程添加到您当前的 git 存储库并获取 2之二。最终,压缩所有提交
    3. 使用 'git rebase --onto' 将所有提交重播到您从 TFVC 获取的提交上(我希望您没有分支)
    4. 使用 'git tfs rcheckin' 将历史推送到 tfvc

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 2016-04-20
      • 2011-02-21
      • 2019-08-11
      • 1970-01-01
      • 2018-10-08
      • 2021-06-09
      • 2019-08-17
      • 2023-03-03
      相关资源
      最近更新 更多