#powershell
#powershell
Вопрос:
У меня есть следующий скрипт, который я использую для удаления объединенных ветвей git:
function Remove-MergedBranches
{
git branch -a --merged |
ForEach-Object { $_.Trim() } |
Where-Object {$_ -NotMatch "^*"} |
Where-Object {-not ( $_ -Like "*master" )} |
Where-Object {-not ( $_ -Like "*develop" )} |
Where-Object {-not ( $_ -Like "*dev" )} |
% {$_.replace("/remotes","")} |
ForEach-Object { git branch -d $_ }
}
replace
Не работает.
Ветвь может быть remotes/origin/tg-training-section
Ответ №1:
Вы не хотите заменять /remotes
в remotes/origin/tg-training-section
том, что не соответствует (оно не начинается с косой черты), поэтому вы, вероятно, захотите опустить косую черту:
# ....
% {$_.replace("remotes","")}
Другим способом было бы заменить /remotes
и remotes
с помощью -replace
регулярного выражения:
# ....
% {$_ -replace '/?remotes'}
Я бы также подумал о том, чтобы даже использовать b/?remotes
, чтобы убедиться, что вы не заменяете remotes
внутри строки.