{"id":2175,"url":"\/distributions\/2175\/click?bit=1&hash=803b6e1bcbd9dfc4ba9456fda887a878c80d24df8d3a575913b14876e18923a5","title":"TJ \u0437\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f 10 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u2014\u00a0\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0430\u043d\u043e\u043d\u0441 \u0441 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438","buttonText":"\u0427\u0438\u0442\u0430\u0442\u044c","imageUuid":"d1d355d8-93a3-5140-aeae-14b03046b760","isPaidAndBannersEnabled":false}

Git alias

Первая заметка на TJ. Первый alias для git. Первый shell скрипт

Сравнительно недавно любимый gui клиент для git GitKraken обновился и стал платным для приватных репозиториев и репозиториев в self hosted gitlab. Написал в поддержку свое недовольство тем, что план «Individual» не покрывает потребности рядового разработчика. А значит, остается довольно бесполезным, с моей точки зрения. И, не дожидаясь ответа, решил попробовать вернуться в командную строку для работы с git (откуда ушел пару лет назад). Завел раздел в бумажном блокноте, записываю шпаргалки с командами, чувствую себя студентом и получаю удовольствие от процесса.

Первым делом захотелось автоматизировать удаление ненужных локальных веток. Их количество очень быстро растет. В команде налажен процесс Code Review, и часто хочется локально посмотреть изменения в реквесте. Успешная реализация задуманного и подтолкнула написать эту заметку.

Пока идея оставалась идеей, в голове крутились пара вариантов реализации — bash alias или очень маленькая программа на Python. Когда же дело дошло до реализации, очень быстро нагугил, что git поддерживает свои alias. Добавляются в. gitconfig. По первому впечатлению могут покрыть все рутины работы с гитом, лишь бы фантазии хватило.

Самый простой пример содержания файла. gitconfig:

[user] email = [email protected] name = user [alias] br = branch

теперь команда git br выводит результаты git branch.

Поддерживается shell. Алиас sayhello =! (echo «Hello World») выполнится.

В общем, как часто бывает — все придумали до меня. И статей на тему огромное количество в сети. И осталось, обладая самым минимальным представлением о том, как пишутся shell скрипты, потратить пару часов на вот этот шедевр

[alias] localclean = "!f() { \ current_branch=$(git rev-parse --abbrev-ref HEAD); \ git branch | grep -E -v 'master|develop|staging|'..$current_branch'' | xargs git branch -D; \ git branch; \ }; f"

! 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. Матерых юниксоидов, для которых заметка показалась бесполезной — прошу в комментариях подсказать более оптимальный вариант решения. Наверняка он есть.

0
14 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Сменю ка имя на всякий случай
Автор

Ты прав. Поправлю извинения. Спасибо

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Сменю ка имя на всякий случай
Автор

Да я и роутер умею настраивать, чё уж там

Ответить
Развернуть ветку
Pavel Zamyatin

Тыжпрограммист спаситель планеты

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Сменю ка имя на всякий случай
Автор

Ну есть же решения. Первое очевидное. И, пожалуй, правильное с точки зрения поддержки продукта, который нравится - все таки заплатить за про версию. Кто-то придумал сделать тоже самое, но в удобном формате. Кто-то нарисовал классный дизайн. А кто-то написал код, который делает ровно то, что мне нужно. Почему бы не поучаствовать в оплате труда этих ребят?
Как я писал - лично мне нравится сам процесс обучения. Потратил бы я это время на кодинг чего-то другого, не связанного с основной работой? Определенно. Узнал бы про то, что в git есть alias - возможно, позже. Возможно, гораздо позже.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Юрий Белоусов

GitKraken очень крутая штука, постоянно юзаю, всем доволен.
Пробовал GitHub desktop/fork/sublime merge?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Читать все 14 комментариев
null