My objective is removing all branch starting with 'fea'.
PS> git branch
bug/5646
chin-dev
* dev
fea/account-manager
fea/animation
fea/charts
fea/chat
fea/dataTable
fea/enquete
fea/page-title
fea/questionnaire
fea/style
hotfix
master
merge
mod/dataTable
question
saif-dev
support
The commande i tried
PS> git branch -d $(git branch | Select-String -Pattern 'fea/')
(Yes, I kown Select-String is matching string, but anyway ignore in that case)
Result with the commande
error: branch ' fea/account-manager' not found.
...
error: branch ' fea/questionnaire' not found.
error: branch ' fea/style' not found.
As you can see it return the matched line also with space. So these anyway removing space with select-string?
Also i tried convert the result toString for using Trim()
PS > $(git branch | Select-String -Pattern 'fea/' ).ToString().Trim()
System.Object[]
CodePudding user response:
- you can list a set of branches using
git branch
alone (and no external commands) :
git branch --list "fea/*"
git branch
now supports the--format=...
option, which makes it much more suitable for scripting purposes (e.g: no need to do manual processing of the output to remove a leading*
or leading spaces):
git branch --format="%(refname:short)" --list "fea/*"
As far as Powershell line processing goes :
to apply some action on each line (or each object) produced by a command, you should iterate on the output using % { ... }
(short for for-each-object { ... }
) :
... | % { $_.ToString().Trim() }