Как удалить все объединенные локальные ветви в Git с помощью PowerShell - PullRequest
0 голосов
/ 04 июля 2018

Как я могу перебирать свои ветви, отфильтровывать объединенные ветви и удалять их, используя Git для Windows в Powershell?

Я уже пытался провести какое-то исследование, но каждый найденный ответ вращается вокруг использования команд, специфичных для bash, таких как grep и xargs. У Powershell нет тех же команд, поэтому они не работают для меня.

Однако из этого исследования я обнаружил, что git for-each-ref --format '%(refname:short)' refs/heads может показать мне все локальные ветви, а git branch -d удалит любую объединенную ветку. Однако объединение этих двух команд (git for-each-ref --format '%(refname:short)' refs/heads | git branch -d) не работает, поскольку выходные данные первой команды не передаются, как я ожидал.

1 Ответ

0 голосов
/ 04 июля 2018

Поработав и изучив команды Powershell, я нашел решение!

Хотя Powershell не имеет команды xargs, он имеет нечто похожее на ForEach-Object. Эта команда позволяет нам работать с каждой строкой вывода из git for-each-ref. Для этой конкретной проблемы, следующая строка сделала трюк:

git for-each-ref --format '%(refname:short)' refs/heads | ForEach-Object {git branch $_ -d}

В фигурных скобках после команды ForEach-Object содержится команда, которую вы хотите выполнить, в то время как переменная $_ обозначает каждую строку вывода из переданной команды.

Надеюсь, это поможет другим новичкам в Powershell / Git!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...