Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Gitlint is a git commit message linter written in python: it checks your commit messages for style.

Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/

Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.

Подключается в виде гит-хука через pre-commit.

#git
tig — TUI (псевдографика в терминале) клиент для Git.

Удобно добавлять в staging отдельные файлы или даже отдельные строки в файлах. Умеет более красиво показывать диффы, списки коммитов, блеймы и т.д. Но сначала придётся научиться им управлять, хоткеи похожи на vim'овские.

#git
А вообще я люблю TUI-софт.

Нашёлся ещё один клиент — lazygit.

Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE

#git
Умные люди говорят, что не обязательно заставлять себя использовать консольный Git, если сложно. Есть много удобных GUI клиентов, с аккуратными кнопками вместо запутанных консольных команд. Даже просто визуализация дерева коммитов часто помогает разобраться в том, что происходит с репозиторием.

В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.

https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/

#git
Кстати, прикольно, что Fork — это нативная программа для Mac (написано на Swift) и Windows (написано на С#), а не очередное Electron-приложение. Ещё более прикольно, что этот клиент — настоящий каноничный инди-проект. Его фулл-тайм разрабатывает супружеская пара Dan & Tanya Pristupov. Всегда удивляюсь, когда в нашем мире корпораций и команд разработки из сотен людей внезапно обнаруживаю такое. И оно живое. Инди-проекты всегда как-то с душой делаются.

Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.

Узнал об этом клиенте вот отсюда и отсюда.

А какими Git-клиентами пользуетесь вы?

#git
Ещё одна новость про форматирование.

Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен пробиться через него к более старым изменениям. Получается, с точки зрения Git, человек, запустивший Black, становится автором всего проекта 😅

Начиная с версии 2.23.0 (это 2019 год) Git поддерживает возможность игнорировать некоторые коммиты в git blame, что как раз и решает эту проблему.

Крутая новость в том, что GitHub теперь тоже в своём Blame View научился игнорировать такие коммиты. Создаёте специальный файлик, записываете туда хэши своих коммитов с форматированием кода и вуаля!

https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

#formatter #github #git #blame #black
16
Питонические атаки
Ещё одна новость про форматирование. Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен…
Если вдруг кому нужна такая же фича в локальном консольном Git или в GUI, типа PyCharm или VSCode, то вот как это делается:

git config --local blame.ignoreRevsFile .git-blame-ignore-revs

Нужно выполнить после клонирования репозитория. К сожалению, самостоятельно Git находить этот файл пока что не научился.

#formatter #git #blame #black
7
Ого, консольный Git становится чуть более человечным. Сколько же раз я копипастил команду, которую он выдаёт в ошибке.

#git
23👍6🎉3