У нас у всех есть куча проектов. Мы работаем над фичами. Каждая фича - отдельная локальная ветка. Мы её делаем, пушим, открываем PR, PR мержат, ветку на сервере удаляют.
А локальная ветка остаётся. И так каждый раз. Через полгода у тебя в git branch тридцать восемь веток:
feature/login
feature/login-fix
fix/typo
topic/auth
topic/auth-v2
...
main
И ты такой сидишь и думаешь: “Какая из них ещё живая? Какие уже смержены? Можно ли что-то удалить или я что-то потеряю?”.
И вот ты уже пишешь скрипт на коленке, который тебе должен всё почистить. Запускаешь его и вуаля, ты слегка ошибся и больше в твоей репе нет бранчей, паника и судорожный поиск решения на https://ohshitgit.com/.
В общем, короче. Harald Nordgren походу сам задолбался с этим и ребята только что релизнули Git 2.56, в котором запилили опцию delete-merged.
Самое классное, что команда супер простая и простая как полено (хоспадепрости patch-format с 100500 аргументами).
$ git branch --delete-merged 'origin/*' --dry-run
Would delete branch feature/login (was abc1234).
Would delete branch feature/login-fix (was def5678).
Would delete branch fix/typo (was 9876fed).
Посмотрел. Всё выглядит нормально. Запускаешь без --dry-run:
$ git branch --delete-merged 'origin/*'
Deleted branch feature/login (was abc1234).
Deleted branch feature/login-fix (was def5678).
Deleted branch fix/typo (was 9876fed).
Всё. Ветки, которые уже влиты в свой origin, снесены. Ветки, где есть неотправленная работа, - остались. Ветки с deleteMerged = false - остались. Ветки, которые ты вычеканил в другом worktree, - остались.
Это безопасно. Свои скрипты можно выкинуть. Также можно точечно чистить категориями topic-*, feature/*, origin/* .
В общем, если git branch уже не помещается в терминал - обновляемся на 2.56 и теперь вы знаете что делать.
Ребята, хочу рассказать про конференцию, которую я бы сам с удовольствием посетил.
3 октября пройдет RWB Infra x Security Meetup — про инфраструктуру и безопасность. Темы, судя по программе, подобрали довольно близкие к тому, с чем мы постоянно сталкиваемся в работе.
Из Infra особенно интересны:
- тюнинг GitLab CE при быстром росте нагрузки
- PKI на базе Vault
- Kubernetes vs Bare Metal и что там может пойти не так
- построение DCIM и компромиссы, которые приходится принимать
В Security тоже есть любопытные темы: DevSecOps, управление уязвимостями, защита данных без привычного периметра и автоматизация доступов в большую инфраструктуру.
Всего будет 8 докладов в двух треках.
📅 3 октября, начало в 13:00
📍 Москва + онлайн
Если работаете с инфраструктурой, DevOps/SRE или безопасностью — я бы как минимум посмотрел программу.
Регистрация уже открыта, офлайн-места ограничены.
👉 Подробнее и регистрация: https://linkwb.ru/81BXU