Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将某些项目从用户帐户移动到另一个帐户_Git_Tfs_Azure Devops_Migration_Tfvc - Fatal编程技术网

Git 将某些项目从用户帐户移动到另一个帐户

Git 将某些项目从用户帐户移动到另一个帐户,git,tfs,azure-devops,migration,tfvc,Git,Tfs,Azure Devops,Migration,Tfvc,我将改变我的工作公司,但我将继续从事同样的项目。我在Azure DevOps上有一些使用Git的项目,还有一个使用TFVC的项目。我使用过这些集成在VisualStudio上的源代码管理工具,但从未使用过控制台命令 我想将源代码连同某些项目(不是所有项目)的所有更改从一个帐户“复制”到另一个帐户。如果可以将TFVC迁移到Git。我该怎么做呢?首先,使用该工具将TFVC代码迁移到Git 使用Git编写所有代码后,您可以轻松地将代码移动到另一个项目: 1) 将存储库克隆到本地文件夹 2) 转到TFS

我将改变我的工作公司,但我将继续从事同样的项目。我在Azure DevOps上有一些使用Git的项目,还有一个使用TFVC的项目。我使用过这些集成在VisualStudio上的源代码管理工具,但从未使用过控制台命令


我想将源代码连同某些项目(不是所有项目)的所有更改从一个帐户“复制”到另一个帐户。如果可以将TFVC迁移到Git。我该怎么做呢?

首先,使用该工具将TFVC代码迁移到Git

使用Git编写所有代码后,您可以轻松地将代码移动到另一个项目:

1) 将存储库克隆到本地文件夹

2) 转到TFS/Azure DevOps并创建新的Git存储库

3) 将本地回购推送到TFS/Azure DevOps回购

最好的方法是使用命令行:

1)
git克隆旧回购url

2) 从TFS/Azure DevOps门户创建新的回购协议

3)
git-remote-add-origin-new-repo-url

git推送-u原点--all

TFVC 众所周知,TFVC很难从一台服务器迁移到另一台服务器。有一些工具可以提供帮助,但TFVC->TFVC很难正确操作。由于您可以在TFVC中完成在Git中不可能完成的事情,所以并不总是能够继承**所有*历史和**所有*分支。不过,总的来说,转移有一些历史的主要分支就足够了

幸运的是,有了这个警告,TFVC->Git就容易多了。从您当前的Azure DevOps帐户中,选择导入存储库选项:

您可以指定要导入的单个分支,其历史最长为180天。对于大多数项目来说,这已经足够了。使用此路径不可能导入多个分支,因此您需要首先将工作集成到单个分支中,以防有正在进行的项目

这将把您的TFVC分支转换为Git存储库。您可以根据需要从不同的TFVC存储库导入不同的分支并执行多次,直到所有工作都在Git中完成

吉特 有多种方法可以将Git存储库从一个系统移动到另一个系统,但由于您使用的是Azure DevOps,因此可以使用相同的导入存储库选项,让Azure Repos将数据从旧帐户直接导入到新帐户

首先,你需要创建一个新的目标帐户(或者使用你现有的个人帐户,如果你有)。然后使用相同的导入存储库选项,但这次是从新帐户导入

输入要移动的存储库的克隆URL,并提供Git凭据或个人访问令牌:

这将自动将您的所有代码、分支、标记等拉入您的目标帐户和新的Git存储库。执行此序列的次数与执行Git repos的次数相同


命令行方式 您还可以使用命令行执行相同的步骤:

吉特 要克隆要迁移的回购,请使用新克隆并指定
--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 repo需要一些时间。之后,您可以将生成的Git存储库推送到新的目标Azure DevOps项目中:

git remote add target https://dev.azure.com/{NewOrg}/{NewProject}/_git/{NewRepo}
git push --all target

我已经使用这个工具从TFVC迁移到Git,但是我想做更老的更改。如果你想做更老的更改,命令行是唯一的选择。认真考虑这会给你带来什么。您可以始终将tfvc回购协议保持为只读。此外,如果您想要更多历史记录,则必须在开始使用具有180天历史记录的回购协议之前立即添加该历史记录。由于Git的特性,您不能在以后预处理历史记录。我正在尝试运行Git tfs工具。我下载并执行了以下命令:
git-tfs.exe clone-u{devops old account email}-p{devops old account pass}https://{devops old account}.visualstudio.com/{project name}/$/{new git projec name}--分支=无
()。我得到这个错误:指定的git存储库目录不是空的。我不知道该怎么做我已经更改了git-tfs命令:
git-tfs.exe clone-u{devops user email}-p{devops password}https://{devops user}.visualstudio.com/{project name}/{versionControl/$/{tfvc repository name}/https://{devops user}.visualstudio.com/{git/{new git repository name}分支=无
。现在,下面是错误消息:指定的git存储库目录不是空的。这很奇怪,因为新存储库没有任何文件,因为它没有初始化。你能创建一个新文件夹并尝试在那里tun命令吗?我得到了,在这个问题注释之后: