Предположим, у меня есть
Филиалы (локальные и удаленные)
владелец
источник/мастер
происхождение/исправление-ошибки-а
происхождение/исправление-b
происхождение / исправление ошибок-c
Локально у меня есть только основная ветка.
Теперь мне нужно поработать над исправлением ошибок, поэтому я проверяю это, работаю над этим и отправляю изменения на пульт.
Затем я делаю то же самое с bug-fix-b.
Филиалы (локальные и удаленные)
master
исправление-ошибки-a
исправление-ошибки-b
источник/мастер
происхождение/исправление-ошибки-a
происхождение/исправление-ошибки-b
происхождение/исправление-с
Теперь у меня есть локальные ветки master, bug-fix-a, bug-fix-b. Сопровождающий ветки Master объединит мои изменения в master и удалит все ветки, которые он уже объединил.
Итак, текущее состояние сейчас:
Филиалы (локальные и удаленные)
master
исправление-ошибки-a
исправление-ошибки-b
источник/мастер
происхождение/исправление-ошибки-c
Теперь я хотел бы вызвать какую-нибудь команду для удаления веток (в данном случае bug-fix-a, bug-fix-b), которые больше не представлены в удаленном репозитории.
Используйте grep для исключения мастера при удалении ненужных веток!
git branch --merged | grep -v "master" >/tmp/merged-branches && vi /tmp/merged-branches && xargs git branch -d </tmp/merged-branches