更改 git-tfs 存储库的默认远程

Change default remote for git-tfs repository

我正在使用 git-tfs 桥接客户的本地 TFS 服务器。昨天他们将安装迁移到新版本 + 更改了服务器的 URL,将所有历史记录和工作项迁移到新实例。

有没有办法将我现有的 git 存储库重新映射到新的默认远程?

我尝试手动编辑 [tfs-remote "default"][= 的 url 属性 22=] 所以它指向新地址和 运行 每个可能的 cleanup* 命令。然而,在 fetch 尝试中,有一个引导过程将新的 tfs-remote 与旧的 URL 添加到配置文件中。

您有 2 个解决方案:

  • first,应该是比较容易的。但是,因为 git-tfs 自实施以来已经发展了很多,我不知道它是否仍然有效,即使它应该...

  • 其次,这肯定会起作用,就是更新与从旧 TFS 获取的最后一个变更集相对应的提交的元数据。当在 gitconfig 文件中找到 none 时,git-tfs 使用它来 bootstrap 新的 tfs-remote。

  1. 修改 git 提交并替换元数据中的 url(看起来像这样:git-tfs-id: [https://tfs.codeplex.com:443/tfs/TFS16]$/vtccds/trunk;C26497)以指向新的 TFS。

  2. 创建原始 .git/config 文件的备份:

     cp .git/config .git/config.bak
    
  3. 删除 .git/config 文件中的所有 [tfs-remote] 设置。

  4. 只需从命令行执行正常的 git tfs fetch

感谢 Philippe 的回答...我要补充一点,如果您使用多个分支,则需要更新每个分支的配置条目并添加

legacy-urls = http://old-url:8080/tfs/Projects

每一个,喜欢

[tfs-remote "Project/branch/..."]
    url = http://newurl:8080/tfs/Projects
    repository = ....
    legacy-urls = http://old-url:8080/tfs/Projects

这将允许 git-tfs 接受这些分支的签入。