在保留所有历史提交的同时将Git存储库迁移到tfs Git

问题描述 投票:1回答:3

我需要将git存储库迁移到tfs git。这是我第一次迁移,重要的是保持历史数据的完整性。任何想法怎么做?

node.js git tfs migration
3个回答
3
投票

如果您想从远程推送所有标签,它们将不会从本地克隆传输,除非您已明确提取它们然后显式推送它们。这就是 - 镜像帮助。

 git clone --mirror source
 git push --mirror target

做魔法。 Full documentation can be found here。将远程添加到本地仓库并推送将推送当前分支及其历史记录,但它可能不会推送当前主存储库中的所有对象,并且如果它们不存在于您的本地克隆中,则不会推送所有标记和标签。

导入存储库有帮助,因为它可以节省在本地执行操作并可以直接从源中提取,这比创建本地存储库然后再推送它要快得多。 It's supported in VSTS, TFS 2017u1+ and TFS2018。但它确实需要两台服务器之间的直接视线,并可能要求您设置备用凭据或个人访问令牌。

本地克隆方法:

 LOCAL <- SOURCE
 LOCAL -> TARGET

导入存储库选项:

 TARGET <- SOURCE

0
投票

你使用哪个版本的TFS?如果您使用的是TFS 2017 Update1或更高版本,那么您可以直接在TFS中使用Import a Git repo

对于早期版本,您可以关注jessehouwing或Mark的回答。我个人认为git clone --mirror source更好。

你也可以参考这个帖子:https://gist.github.com/niksumeiko/8972566


-1
投票

迁移到tfs git存储库与迁移到任何其他git存储库相同。在下面,您需要(克隆)本地源代码,并且tfs中的git repo将成为远程。

首先,您找到遥控器的URL。您可以从TFS Web UI获取此信息;它应该在你第一次创建repo时获得的指令页面中给你,或者如果repo已经存在于tfs中,你可以点击“clone”按钮获取URL。

然后将其作为远程添加到本地仓库。

git remote add tfs url/of/remote

然后你把你的裁判推到遥控器; git会自动发送完整的历史记录。

git push --all tfs
© www.soinside.com 2019 - 2024. All rights reserved.