更新多个Git存储库的远程URL

时间:2018-12-27 09:34:13

标签: git powershell

我正在寻找一种简单的方法来更新Windows 10客户端上本地git存储库的所有“远程” URL。

我们已将服务器上的URL更新为HTTPS,而不是HTTP,并且URL已更改为:

http://bitbucket.myserver.com

收件人:

https://bitbucket.myserver.com:8443

我有一个用于更新(拉出)存储库的powershell脚本,但不确定如何将其更改为用于更新远程URL的命令:

Get-ChildItem -Directory | ForEach-Object { Write-Host("`r`ngit pull for: '$($_.FullName)'") | git -C "$($_.FullName)" pull }

我需要将以下命令合并到上述PowerShell脚本中:

git remote set-url [--push] <name> <newurl> [<oldurl>]

1 个答案:

答案 0 :(得分:1)

使用git remote get-url检索原始URL后,可以使用URI builder来更改SchemePort。使用UriBuilder还可以安全地运行多次(幂等):

Get-ChildItem -Directory | ForEach-Object { 
    Write-Host("`r`ngit remote set-url for: '$($_.FullName)'")
    $url = git -C "$($_.FullName)" remote get-url origin
    $url = new-object System.UriBuilder -ArgumentList $url
    $url.Port = 8443
    $url.Scheme = "https"
    git -C "$($_.FullName)" remote set-url origin $url
}