Первая заметка на TJ. Первый alias для git. Первый shell скрипт
Сравнительно недавно любимый gui клиент для git GitKraken обновился и стал платным для приватных репозиториев и репозиториев в self hosted gitlab. Написал в поддержку свое недовольство тем, что план «Individual» не покрывает потребности рядового разработчика. А значит, остается довольно бесполезным, с моей точки зрения. И, не дожидаясь ответа, решил попробовать вернуться в командную строку для работы с git (откуда ушел пару лет назад). Завел раздел в бумажном блокноте, записываю шпаргалки с командами, чувствую себя студентом и получаю удовольствие от процесса.
Первым делом захотелось автоматизировать удаление ненужных локальных веток. Их количество очень быстро растет. В команде налажен процесс Code Review, и часто хочется локально посмотреть изменения в реквесте. Успешная реализация задуманного и подтолкнула написать эту заметку.
Пока идея оставалась идеей, в голове крутились пара вариантов реализации — bash alias или очень маленькая программа на Python. Когда же дело дошло до реализации, очень быстро нагугил, что git поддерживает свои alias. Добавляются в. gitconfig. По первому впечатлению могут покрыть все рутины работы с гитом, лишь бы фантазии хватило.
Самый простой пример содержания файла. gitconfig:
теперь команда git br выводит результаты git branch.
Поддерживается shell. Алиас sayhello =! (echo «Hello World») выполнится.
В общем, как часто бывает — все придумали до меня. И статей на тему огромное количество в сети. И осталось, обладая самым минимальным представлением о том, как пишутся shell скрипты, потратить пару часов на вот этот шедевр
! f() { 〈shell script〉 }; f» — общий формат для записи скрипта в алиас
current_branch=$(git rev-parse --abbrev-ref HEAD) - запись в переменную current_branch текущей ветки
git branch | grep -E -v 'master|develop|staging|'..$current_branch'' | xargs git branch -D — применение git branch -D для всех веток, кроме master, develop, staging и текущей.
git branch — добавил для вывода результата работы скрипта.
Вот и все. Почувствовал себя мамкиным программистом и решил поделиться с подсайтом. Надеюсь, что пост подтолкнет кого-то из местных, не знакомых с алиасами, немного автоматизировать свой труд.
Оставлю ссылки, из которых получил все необходимое, перед тем как закрою вкладки:
P.S. Матерых юниксоидов, для которых заметка показалась бесполезной — прошу в комментариях подсказать более оптимальный вариант решения. Наверняка он есть.
Комментарий недоступен
Ты прав. Поправлю извинения. Спасибо
Комментарий недоступен
Да я и роутер умею настраивать, чё уж там
Тыжпрограммист спаситель планеты
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Ну есть же решения. Первое очевидное. И, пожалуй, правильное с точки зрения поддержки продукта, который нравится - все таки заплатить за про версию. Кто-то придумал сделать тоже самое, но в удобном формате. Кто-то нарисовал классный дизайн. А кто-то написал код, который делает ровно то, что мне нужно. Почему бы не поучаствовать в оплате труда этих ребят?
Как я писал - лично мне нравится сам процесс обучения. Потратил бы я это время на кодинг чего-то другого, не связанного с основной работой? Определенно. Узнал бы про то, что в git есть alias - возможно, позже. Возможно, гораздо позже.
Комментарий недоступен
GitKraken очень крутая штука, постоянно юзаю, всем доволен.
Пробовал GitHub desktop/fork/sublime merge?
Комментарий недоступен
Комментарий недоступен