跳至主要内容

导入 Team Foundation 版本控制存储库

您可以通过将存储库转换为 Git,然后将 Git 存储库推送到 GitHub 来导入 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 上创建一个新的存储库。为避免错误,请不要使用 README、许可证或 gitignore 文件初始化新存储库。项目推送到 GitHub 后,您可以添加这些文件。有关详细信息,请参阅“创建新的存储库”。

  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 文件大小限制的文件,则推送可能会失败。通过运行 `git lfs import` 将大型文件移动到 Git LFS,然后重试。

使用 `git-tfs` 迁移

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

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

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

  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))` 的内容开头。

    如果您得到类似于 `无法加载 DLL 'Microsoft.VisualStudio.Setup.Configuration.Native.dll': 未找到指定的模块。(来自 HRESULT 的异常: 0x8007007E)` 的输出,请确保已正确安装 Visual Studio Team Explorer。

  4. 要确认 Git LFS 已安装在您的计算机上,请运行 `git lfs --version`。

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

  5. 如果您尚未配置 Git,请通过运行 `git config --global user.name "NAME"` 和 `git config --global user.email EMAIL` 来配置您的姓名和电子邮件地址,将 NAME 替换为您的姓名,将 EMAIL 替换为您的电子邮件地址。

  6. 运行 `git tfs clone`,传递 TFVC 存储库的 URL 和存储库路径作为参数。例如,要将 `https://dev.azure.com/octocat` 中的 `example` 存储库转换为存储在 `/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 文件大小限制的文件,则推送可能会失败。通过运行 `git lfs import` 将大型文件移动到 Git LFS,然后重试。

进一步阅读