git - 将一些项目从用户帐户移动到另一个用户帐户
问题描述
我将改变我的工作公司,但我将继续从事相同的项目。我有一些使用 Git 的 Azure DevOps 项目和另一个使用 TFVC 的项目。我使用过集成在 Visual Studio 上的这些源代码控制工具,我从未使用过控制台命令。
我想将源代码与某些项目(不是所有项目)的所有更改从一个帐户“复制”到另一个帐户。如果可以将 TFVC 迁移到 Git。我该怎么做?
解决方案
TFVC
众所周知,TFVC 很难从一台服务器迁移到另一台服务器。有一些工具可以提供帮助,但是 TFVC->TFVC 很难做到正确。由于您可以在 TFVC 中完成在 Git 中无法完成的事情,因此并不总是可以继承 **all* 历史记录和 **all* 分支。不过,总的来说,转移具有一些历史记录的主分支就足够了。
幸运的是,有了这个警告,TFVC->Git 就容易多了。从您当前的 Azure DevOps 帐户中,选择 Import Repository 选项:
您可以指定要导入最多 180 天历史的单个分支。对于大多数项目来说,这绰绰有余。使用此路线无法导入多个分支,因此您需要先将您的工作集成到一个分支中,以防您有正在进行的项目。
这会将您的 TFVC 分支转换为 Git 存储库。您可以根据需要多次执行此操作,从不同的 TFVC 存储库导入不同的分支,直到您的所有工作都在 Git 中。
吉特
有多种方法可以将 Git 存储库从一个系统移动到另一个系统,但由于您使用的是 Azure DevOps,因此可以使用相同的 Import Repository 选项让 Azure Repos 将旧帐户中的数据直接导入新帐户。
首先,您需要创建一个新的目标帐户(或使用现有的个人帐户,如果有的话)。然后使用相同的 Import Repository 选项,但这次来自您的新帐户。
输入您要移动的存储库的克隆 URL,并提供您的 Git 凭据或个人访问令牌:
这将自动将您的所有代码、分支、标签等拉入您的目标帐户和新的 Git 存储库。执行此序列的次数与您拥有 Git 存储库的次数一样多。
命令行方式
您还可以使用命令行执行相同的步骤:
吉特
要克隆用于迁移的存储库,请使用新克隆并指定--mirror
选项:
git clone https://dev.azure.com/{Org}/{Project}/_git/{Repo} --mirror
然后将所有内容推送到新帐户上的一个新的、空的 git 存储库中:
git push --mirror https://dev.azure.com/{NewOrg}/{NewProject}/_git/{NewRepo}
TFVC
对于 TFVC,您有工具可以将 TFVC 分支导入具有可选历史记录的 git 存储库。git tfs
允许您执行这样的导出:
git tfs clone http://your-tfs-server:8080/tfs/your-collection $/your-tfvc-repo
此过程将需要一些时间将您的变更集导入本地 git 存储库。之后,您可以将生成的 Git 存储库推送到新的目标 Azure DevOps 项目中:
git remote add target https://dev.azure.com/{NewOrg}/{NewProject}/_git/{NewRepo}
git push --all target
推荐阅读
- javascript - 如何找到使用 jwt “登录”的当前用户的 id?我正在尝试发出 GET 请求并按特定 ID 过滤
- mysql - 如何制作这样的 SQL 脚本?
- r - 使用已经成形的数据框的森林图
- .net - 如何使用 .NET 匹配正则表达式中的最后一个模式?
- javascript - fabric.js 2.4 导入 SVG,如何获取相对于画布的实际路径?
- python - Matplotlib 使用多行动画子图
- php - 带有数组函数和数据库的php路由
- android - 错误:处理清单 android studio 失败
- jmeter - Jmeter:在 SMTP 消息正文中打印线程属性
- python - 对复制列表的输出感到困惑