关于从 Team Foundation 版本控制导入
建议使用 Azure Repos 将 Team Foundation 版本控制 (TFVC) 存储库转换为 Git。 但是,Azure Repos 最多只能迁移 180 天的历史记录。 如果要保留更多历史记录,可改用 git-tfs
。
使用 Azure Repos 进行迁移(推荐)
注意:Azure Repos 最多只能迁移 180 天的历史记录。 存储库在 180 天阈值之前的状态将在单个初始提交中迁移。 若要保留更多历史记录,请参阅“使用 git-tfs
进行迁移”。
若要执行这些步骤,必须使用 macOS 或 Linux 系统并安装以下工具:
- Git
- Git Large File Storage (Git LFS)(请参阅“安装 Git Large File Storage”)
-
在 你的 GitHub Enterprise Server 实例 上创建一个新存储库。 为避免错误,请勿使用 README、许可或 gitignore 文件初始化新存储库。 您可以在项目推送到 GitHub Enterprise Server 之后添加这些文件。 有关详细信息,请参阅“创建新仓库”。
-
若要确认计算机上已安装 Git,请运行
git --version.
输出应类似于
git version 2.40.0
。 -
若要确认计算机上已安装 Git LFS,请运行
git lfs --version
。输出应类似于
git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)
。 -
使用 Azure Repos 将 TFVC 存储库转换为 Git。 有关说明,请参阅 Microsoft Learn 中的将存储库从 TFVC 导入 Git。
-
若要将 Azure Repos 存储库克隆到本地计算机,请运行
git clone --mirror URL
,将 URL 替换为 Azure DevOps 存储库的克隆 URL。若要识别 Azure DevOps 存储库的克隆 URL,请参阅 Microsoft Learn 中的获取 Azure Repos Git 存储库的克隆 URL。
-
若要将 GitHub 存储库添加为远程存储库,请运行
git remote add origin URL
,将URL
替换为前面创建的 GitHub 存储库的 URL,例如https://github.com/octocat/example-repository.git
。 -
若要将存储库推送到 GitHub,请运行
git push --mirror origin
。如果存储库包含的任何文件大于 GitHub Enterprise Server 的文件大小限制,则你的推送可能会失败。 通过运行
git lfs import
将大文件移动到 Git LFS,然后重试。
使用 git-tfs
进行迁移
如果使用 git-tfs
进行迁移,将保留 TFVC 存储库的完整历史记录。
若要执行这些步骤,必须使用 Windows 并安装以下工具:
- Visual Studio 团队资源管理器
git-tfs
,使用 Chocolatey 或通过手动下载二进制版本进行安装- Git
- Git Large File Storage (Git LFS)(请参阅“安装 Git Large File Storage”)
-
在 你的 GitHub Enterprise Server 实例 上创建一个新存储库。 为避免错误,请勿使用 README、许可或 gitignore 文件初始化新存储库。 您可以在项目推送到 GitHub Enterprise Server 之后添加这些文件。 有关详细信息,请参阅“创建新仓库”。
-
若要确认计算机上已安装 Git,请运行
git --version.
输出应类似于
git version 2.40.0
。 -
若要确认计算机上已安装
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 团队资源管理器。 -
若要确认计算机上已安装 Git LFS,请运行
git lfs --version
。输出应类似于
git-lfs/3.1.4 (GitHub; darwin arm64; go 1.18.1)
。 -
如果尚未完成,请通过运行
git config --global user.name "NAME"
和git config --global user.email EMAIL
并使用你的姓名和电子邮件来配置 Git,操作时请将 NAME 替换为你的姓名,将 EMAIL 替换为你的电子邮件地址。 -
运行
git tfs clone
,传入 TFVC 存储库的 URL 和存储库路径作为参数。 例如,若要将example
存储库从https://dev.azure.com/octocat
转换为存储在/example
目录中的 Git 存储库,请运行git tfs clone --branches=all https://dev.azure.com/octocat $/example
。 -
移动到新创建的 Git 存储库的目录中。
-
若要将 GitHub 存储库添加为远程存储库,请运行
git remote add origin URL
,将URL
替换为前面创建的 GitHub 存储库的 URL,例如https://github.com/octocat/example-repository.git
。 -
若要将存储库推送到 GitHub,请运行
git push --mirror origin
。如果存储库包含的任何文件大于 GitHub Enterprise Server 的文件大小限制,则你的推送可能会失败。 通过运行
git lfs import
将大文件移动到 Git LFS,然后重试。