Итак, я пишу несколько скриптов для переноса SVN в GIT, у нас есть несколько «старых» веток в SVN, которые все еще существуют, но их не нужно перемещать в GIT. (Филиалы, которые, как оказалось, уже были объединены с магистралью).
После небольшого количества Google-фу я придумал следующее:
$(git for-each-ref --format='%(refname:short)' --merged origin/trunk | grep '(?!origin\/trunk)origin\/.*')
Для передачи на
git branch -D --remote _previouscommandgoeshere_
Если я запускаю только git for-each-ref --format='%(refname:short)' --merged origin/trunk
, я получаю следующий вывод:
origin/IR1091
origin/IR1102
origin/IR1105
...
origin/IR932
origin/Software
origin/trunk
origin/trunk@6792
origin/trunk@6850
Когда я добавляю команду grep
, я получаю 0 значений.
Однако, https://regexr.com/3ot1t дал мне понять, что мое регулярное выражение делает именно то, что я хочу. Удалите все ветви, кроме ветви trunk
.
Что не так с регулярным выражением / grep? (заметьте, я , а не гуру linux / grep. Все это делается в bash, который поставляется с windows git)