代码之家  ›  专栏  ›  技术社区  ›  EJo

更改所有本地存储库的Git URL

  •  2
  • EJo  · 技术社区  · 6 年前

    最近,我们将隐藏Git服务器迁移为使用HTTPS而不是HTTP。现在,我们必须更新每个存储库中的URL,以便将新URL与HTTPS一起使用。我们有没有办法不去每个存储库的Git配置和更改URL就可以做到这一点?问题是我们有将近60个本地存储库需要更新。

    任何一种一次性更新URL的解决方案都是非常受欢迎的。

    2 回复  |  直到 6 年前
        1
  •  6
  •   Chris    6 年前

    每个开发人员都可以全局配置 url.<base>.insteadOf 设置:

    git config --global url."https://your-domain".insteadOf http://your-domain
    

    This will cause 以开头的URL http://your-domain 要动态重写,请从开始 https://your-domain :

    任何以该值开头的URL都将被重写为以 <base> 。如果某个站点为大量存储库提供服务,并使用多种访问方法为其提供服务,而某些用户需要使用不同的访问方法,则此功能允许用户指定任何等效URL,并让Git自动将URL重写为特定用户的最佳备选URL,即使对于站点上从未见过的存储库也是如此。当多个insteadOf字符串与给定URL匹配时,将使用最长的匹配。

        2
  •  2
  •   Matt Clark    6 年前

    你可以使用 sed ,但要小心;)

    sed -i 's/git.oldserver.com/git.newserver.com/' /path/to/repos/*/.git/config
    

    这将执行一个内嵌字符串替换,用新字符串替换旧字符串。您只需要将它传递给所有git配置文件的路径。