Между лекциите и работата ми излязоха 5 свободни минути и идвам да ви покажа един стар трик.
Преди години, когато започвах да навлизам в света на DevOps git ми беше особено притеснително, защото няколко пъти бях омазвал здраво нещата. Нямах muscle memory да си гледам в кой бранч съм и копая 5 часа и като направя git status и изтръпвах.
Та си написах един cron, който всяка сутрин в 8:30 ми checkout-ваше към master (тогава движението за main още не беше във вихъра си) и взимаше latest. От днешна перспектива това може да е проблем, защото понякога работя по няколко бранча в едно и също репо, но тогава сетъпа ми беше много прост. Та това ми спасяваше задника неведнъж:
find . -mindepth 1 -maxdepth 2 -type d -exec test -d "{}/.git" \; -exec sh -c 'echo "\n=== Updating {} ===" && cd "{}" && git checkout main && git pull' \;
Днес като мигрирах едни repo-та се присетих и си го изрових от архивите и ми свърши чудна работа.
Но съвета ми е – по-добре да запомните основното в git – ако работиш сам в правилния бранч и по едно репо всичко е наред. Ако обаче няколко човека работят в едно shared repo (недай си боже по някой terraform проект) – тогава тези дребни нека като да знаем винаги дали сме взели latest, в кой бранч сме и т.н. са просто a must.
Също така нещо дребни удобства за хората, които основно използват терминала и това са customisable bash/zsh/*sh. Проекти като Oh my zsh и съответно Oh my bash са чудесни инструменти да си направим терминала още по-удобен. Към тях може да използваме themes & plugins. Първите добавят цветови схем, но и функционалност към prompt-а ни (например аз използвам Starship, която харесвам доста, но най-популярната и най-гъвкавата е PowerLevel10к), а като plugins преди използвах много, но най-удобните за мен остават git, zsh-syntax-highlighting и zsh-autosuggestions. Списък с всички, които можете да видите и използвате можете да намерите в repo-то на omz – https://github.com/ohmyzsh/ohmyzsh/wiki/plugins.
Преди да съм забравил, че се отплеснах малко – темата, която използвам показва в промпта ни освен пътя в ОС в който сме в момента, но и текущия ни бранч и дали освен това показва и няколко полезни неща. Вижте в долния пример как при чисто репо след бранч master не показва нищо, но ако добавим файл, който го няма в git все още добавя ? накрая, а като направим git add става +. Това е удобен механизъм да ни светне лампата. Промптовете са супер гъвкави и може да ни смени цвета или надписа накрая ако имаме неща нов файл или не сме push-нали. Имаме и prehook-ове в git, но за това – друг път.

Отивам да си приключа лекцията. Ще се видим утре в 14:30 в track 2 на Dev: Challenge Accepted, а в Събота – на WordCamp Sofia в НДК в 16:20.
Дръпнете ме ако ме видите някъде.
P.S. И понеже са десетки и plugins и теми за OMZ има и съответно стотици постове за това кой какво използва. Оставям само един пример, защото ако минете през всичко изброено ще ви отнеме половин ден. Добре дошли в поредния rabbit hole.
