git - 是什么阻止我在管道中使用 $_ ?

标签 git powershell

命令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/

相关文章:

git - 一次为多个文件配置 vsdiffmerge

c# - 将 git 上的所有提交返回到尚未 merge 的主分支的最简单方法是什么?

git - 我可以用子模块制作 "deep copy"的 git 存储库吗?

C# 不会运行 PowerShell 脚本

git ls-tree 工作目录的输出?

git - 在 git 配置文件中找不到分支名称

powershell - 如何在 GO 程序中嵌入 powershell 脚本以构建单个二进制文件

.net - 性能计数器在 ReadOnly=false 时显示不同的值

windows - 如何将命令行参数传递给由 doskey 调用的 PowerShell 脚本

powershell - 在 Powershell 中将用户分配给 Active Directory native 应用程序 - 'C