Git 远程分支列表

7
我正在寻找在PowerShell脚本中针对每个Git远程分支执行函数的最佳方法。
我不知道获取Git远程分支列表的最佳方法。我可以成功列出所有远程分支,但是我总是得到分支名称中讨厌的格式。
以下是我尝试过的命令和得到的结果数组。
$allBranches = git branch -r
$allBranches = @('  origin/branch1', '  origin/branch2', '  origin/branch3')

$allBranches = git for-each-ref --shell --format=%(refname) refs/remotes/origin
$allBranches = @(''origin/branch1'', ''origin/branch2'', ''origin/branch3'')

我想要获取$allBranches = @('origin/branch1', 'origin/branch2', 'origin/branch3'),所以我目前的做法是手动使用 Trim() 函数从奇怪的分支名称中删除格式。
foreach($branch in $allBranches) {
    # Format $branch
    # Do function
}

有更好的方法吗?

这篇文章的标题是“如何使用Bash脚本遍历所有Git分支”,但实际上它包含了你想要的Git魔法。 - Kristján
你是否正在寻找Powershell代码以轻松格式化返回的分支名称,或者更好的git调用,不包括额外的空格? - weirdev
我正在寻找一个 Powershell 脚本,而不是 Bash 脚本。我知道如何格式化分支名称。我希望有更好的 git 调用或更好的迭代分支的方法。 - Elaine Lin
2个回答

3

$branches = git for-each-ref --format='%(refname:short)' refs/remotes/origin

这段代码是用来获取远程仓库中所有分支的列表。在命令行中运行该命令后,将返回一个包含各个分支名称的列表。


3
请在您的答案中添加一些解释和/或描述。 - plasmacel

2
Trim()操作应该能够满足您的需求。
$allTrimmedBranches = @()
foreach($branch in $allBranches) {
    $allTrimmedBranches += $branch.Trim()
}
#do function

我的当前方法是修剪分支名称,这似乎相当低效。我想要一个更好的git调用或更好的迭代分支的方法。 - Elaine Lin
1
你有多少个分支?修剪一百个或更少的字符串所需的时间/资源是微不足道的。 - weirdev
我有不到100个分支。但是,我想知道是否有更简洁的解决方案。 - Elaine Lin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接