我需要将git存储库迁移到tfs git。 这是我第一次迁移,重要的是保持历史数据的完整性。任何想法怎么做?
答案 0 :(得分: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
答案 1 :(得分:0)
您使用的是哪个版本的TFS?如果您使用的是TFS 2017 Update1或更高版本,则可以直接在TFS中Import a Git repo。
对于早期版本,您可以关注jessehouwing或Mark的回答。我个人认为git clone --mirror source
它会好得多。
答案 2 :(得分:-1)
迁移到tfs git存储库与迁移到任何其他git存储库相同。在下文中,您需要(克隆)本地源代码,并且tfs中的git repo将成为远程。
首先,您找到遥控器的URL。您可以从TFS Web UI获取此信息;它应该在你第一次创建repo时得到的指令页面给你,或者如果repo已经存在于tfs中,你可以点击“clone”按钮获取URL。
然后将其作为遥控器添加到本地仓库。
Computer.where(id: Account.administrtor.group("accounts.computer_id").having("count(accounts.computer_id) = 1").pluck("accounts.computer_id"))
然后你把你的裁判推到遥控器; git会自动发送完整的历史记录。
git remote add tfs url/of/remote