Skip to main content

导入 Team Foundation 版本控制存储库

可以通过将存储库转换为 Git,然后将 Git 存储库推送到 GitHub Enterprise Cloud,从 Team Foundation 版本控制 (TFVC) 导入存储库。

关于从 Team Foundation 版本控制导入

建议使用 Azure Repos 将 Team Foundation 版本控制 (TFVC) 存储库转换为 Git。 但是,Azure Repos 最多只能迁移 180 天的历史记录。 如果要保留更多历史记录,可改用 git-tfs

注意:Azure Repos 最多只能迁移 180 天的历史记录。 存储库在 180 天阈值之前的状态将在单个初始提交中迁移。 若要保留更多历史记录,请参阅“使用 git-tfs 进行迁移”。

若要执行这些步骤,必须使用 macOS 或 Linux 系统并安装以下工具:

  1. 在 GitHub.com 上创建一个新存储库。 为避免错误,请勿使用 README、许可或 gitignore 文件初始化新存储库。 您可以在项目推送到 GitHub Enterprise Cloud 之后添加这些文件。 有关详细信息,请参阅“创建新仓库”。

  2. 若要确认计算机上已安装 Git,请运行 git --version.

    输出应类似于 git version 2.40.0

  3. 若要确认计算机上已安装 Git LFS,请运行 git lfs --version

    输出应类似于 git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)

  4. 使用 Azure Repos 将 TFVC 存储库转换为 Git。 有关说明,请参阅 Microsoft Learn 中的将存储库从 TFVC 导入 Git

  5. 若要将 Azure Repos 存储库克隆到本地计算机,请运行 git clone --mirror URL,将 URL 替换为 Azure DevOps 存储库的克隆 URL。

    若要识别 Azure DevOps 存储库的克隆 URL,请参阅 Microsoft Learn 中的获取 Azure Repos Git 存储库的克隆 URL

  6. 若要将 GitHub 存储库添加为远程存储库,请运行 git remote add origin URL,将 URL 替换为前面创建的 GitHub 存储库的 URL,例如 https://github.com/octocat/example-repository.git

  7. 若要将存储库推送到 GitHub,请运行 git push --mirror origin

    如果存储库包含的任何文件大于 GitHub Enterprise Cloud 的文件大小限制,则你的推送可能会失败。 通过运行 git lfs import 将大文件移动到 Git LFS,然后重试。

使用 git-tfs 进行迁移

如果使用 git-tfs 进行迁移,将保留 TFVC 存储库的完整历史记录。

若要执行这些步骤,必须使用 Windows 并安装以下工具:

  1. 在 GitHub.com 上创建一个新存储库。 为避免错误,请勿使用 README、许可或 gitignore 文件初始化新存储库。 您可以在项目推送到 GitHub Enterprise Cloud 之后添加这些文件。 有关详细信息,请参阅“创建新仓库”。

  2. 若要确认计算机上已安装 Git,请运行 git --version.

    输出应类似于 git version 2.40.0

  3. 若要确认计算机上已安装 git-tfs,请运行 git tfs --version

    输出的开头应类似于 git-tfs version 0.32.0.0 (TFS client library 16.0.0.0 (MS))

    如果获得类似于 Unable to load DLL 'Microsoft.VisualStudio.Setup.Configuration.Native.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 的输出,请确保正确安装了 Visual Studio 团队资源管理器。

  4. 若要确认计算机上已安装 Git LFS,请运行 git lfs --version

    输出应类似于 git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)

  5. 如果尚未完成,请通过运行 git config --global user.name "NAME"git config --global user.email EMAIL 并使用你的姓名和电子邮件来配置 Git,操作时请将 NAME 替换为你的姓名,将 EMAIL 替换为你的电子邮件地址。

  6. 运行 git tfs clone,传入 TFVC 存储库的 URL 和存储库路径作为参数。 例如,若要将 example 存储库从 https://dev.azure.com/octocat 转换为存储在 /example 目录中的 Git 存储库,请运行 git tfs clone --branches=all https://dev.azure.com/octocat $/example

  7. 移动到新创建的 Git 存储库的目录中。

  8. 若要将 GitHub 存储库添加为远程存储库,请运行 git remote add origin URL,将 URL 替换为前面创建的 GitHub 存储库的 URL,例如 https://github.com/octocat/example-repository.git

  9. 若要将存储库推送到 GitHub,请运行 git push --mirror origin

    如果存储库包含的任何文件大于 GitHub Enterprise Cloud 的文件大小限制,则你的推送可能会失败。 通过运行 git lfs import 将大文件移动到 Git LFS,然后重试。

延伸阅读