命令gitbranch --list | select-string 2362
为我提供了符合模式 2362
的几个分支的列表。我想删除服务器上的所有这些分支。
命令gitbranch --list | 2362 | 选择字符串git push origin --delete $_
给我错误 fatal: --delete does not make sense without any refs
,这与我从命令 得到的错误相同git push origin --delete
。就好像 $_ 是空的,就好像没有找到与模式匹配的分支。
我做错了什么?
最佳答案
您尝试执行的操作存在一些问题。 git
命令不接受管道输入(据我所知),因为它不是 PowerShell cmdlet。
此外,Select-String
返回一个 MatchInfo 对象,因此 $_
不仅仅包含分支的名称,还包含该对象及其各种属性。
试试这个:
(git branch --list | select-string 2362).line | ForEach-Object {
git push origin --delete $_
}
请注意,如果分支名称之一是当前分支,您可能会在其中一个 * 字符。
关于git - 是什么阻止我在管道中使用 $_ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56368320/