Git-хуки — это невероятно мощный и полезный инструмент, который, как мне кажется, часто игнорируют и недооценивают.
Написал пост про Git-хуки в целом и про инструмент
https://semakin.dev/2020/05/pre-commit/
#git
Написал пост про Git-хуки в целом и про инструмент
pre-commit
, который упрощает работу с ними. Если ещё не пользуетесь, то наверняка будет полезно, на каком языке бы вы ни писали!https://semakin.dev/2020/05/pre-commit/
#git
Питонические атаки
Запуск Git-хуков при помощи pre-commit
Git-хуки позволяют автоматизировать запуск различных проверок (линтеры, форматтеры, тесты) при работе с системой контроля версий.
Годный небольшой курс по основам Git в игровой форме. Для совсем новичков этого, пожалуй, будет недостаточно, но для закрепления уже имеющихся знаний — самое то. Информация подана визуально — это классно. Узнал кое-что новое.
https://learngitbranching.js.org/?locale=ru_RU
#git
https://learngitbranching.js.org/?locale=ru_RU
#git
learngitbranching.js.org
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
Чему Мстители могут научить нас о Git?
Интересная статья, где сюжетные повороты с путешествиями во времени из Мстителей объясняются с точки зрения Git. Содержит спойлеры!
https://ljvmiranda921.github.io/notebook/2021/06/05/avengers-git/
#git
Интересная статья, где сюжетные повороты с путешествиями во времени из Мстителей объясняются с точки зрения Git. Содержит спойлеры!
https://ljvmiranda921.github.io/notebook/2021/06/05/avengers-git/
#git
ljvmiranda921.github.io
What can Avengers: Endgame teach us about Git?
Avengers and Git? The most ambitious crossover event in history. In this blog post, I will explain crucial plot points in Avengers: Endgame in five Git conce...
День Git на канале!
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git сложен: легко всё испортить, и нереально понять как исправить. Документация Git - это финиш: чтобы найти решение, тебе заранее надо знать название фишки, которая вернет всё на место.
Разбор частых проблем с Git с командами для починки.
https://ohshitgit.com/
#git
Git Undo — инструмент, который может отменить любое действие в Git.
С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:
* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.
Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!
https://blog.waleedkhan.name/git-undo/
#git
С этой штукой больше не придётся удалять и скачивать заново сломанный репозиторий. Очень легко вернуться в "здоровое" состояние, когда что-то идёт не так. Оно может отменить практически что угодно:
* коммиты;
* изменение сообщения коммита (amend);
* мёрджи и ребейзы;
* переключения между ветками и коммитами;
* создание, обновление и удаление веток.
Тулза прицепляется в Git при помощи хуков и записывает все произведенные изменения. Можно отменять сколько угодно шагов назад, не только последний. Магия!
https://blog.waleedkhan.name/git-undo/
#git
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
Код: https://github.com/jorisroovers/gitlint
Документация: https://jorisroovers.com/gitlint/
Есть много разных встроенных правил, например, умеет ограничивать длину первой строки, запрещать trailing spaces, требовать наличия определенного паттерна в сообщении (например, идентификатор тикета в Jira). Также умеет энфорсить Conventional Commits.
Подключается в виде гит-хука через pre-commit.
#git
GitHub
GitHub - jorisroovers/gitlint: Linting for your git commit messages
Linting for your git commit messages. Contribute to jorisroovers/gitlint development by creating an account on GitHub.
А вообще я люблю TUI-софт.
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
Нашёлся ещё один клиент — lazygit.
Сам пока не пользовался, но можно посмотреть, какую магию автор программы творит с её помощью: https://www.youtube.com/watch?v=CPLdltN7wgE
#git
GitHub
GitHub - jesseduffield/lazygit: simple terminal UI for git commands
simple terminal UI for git commands. Contribute to jesseduffield/lazygit development by creating an account on GitHub.
Умные люди говорят, что не обязательно заставлять себя использовать консольный Git, если сложно. Есть много удобных GUI клиентов, с аккуратными кнопками вместо запутанных консольных команд. Даже просто визуализация дерева коммитов часто помогает разобраться в том, что происходит с репозиторием.
В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.
https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/
#git
В статье автор показывает, как просто делать всякие продвинутые вещи с гитом через GUI-клиент Fork.
https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/
#git
Mainmatter
Git Good - The magic of keeping a clean Git history - Mainmatter
Chris Manson goes into detail about the benefits of a clean git history and
describes some tips and tricks that really help you clean up your branches and
Pull Requests
describes some tips and tricks that really help you clean up your branches and
Pull Requests
Кстати, прикольно, что Fork — это нативная программа для Mac (написано на Swift) и Windows (написано на С#), а не очередное Electron-приложение. Ещё более прикольно, что этот клиент — настоящий каноничный инди-проект. Его фулл-тайм разрабатывает супружеская пара Dan & Tanya Pristupov. Всегда удивляюсь, когда в нашем мире корпораций и команд разработки из сотен людей внезапно обнаруживаю такое. И оно живое. Инди-проекты всегда как-то с душой делаются.
Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.
Узнал об этом клиенте вот отсюда и отсюда.
А какими Git-клиентами пользуетесь вы?
#git
Софтинка платная, но примерно как Sublime Text — можно бесплатно пользоваться сколько угодно, но иногда будут всплывать попапы. Говорят, что они всплывают достаточно редко и даже почти не бесят.
Узнал об этом клиенте вот отсюда и отсюда.
А какими Git-клиентами пользуетесь вы?
#git
Fork - a fast and friendly git client for Mac and Windows
Fork - a fast and friendly git client for Mac and Windows.
Ещё одна новость про форматирование.
Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и
Начиная с версии 2.23.0 (это 2019 год) Git поддерживает возможность игнорировать некоторые коммиты в
Крутая новость в том, что 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
Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и
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
GitHub Docs
Viewing and understanding files - GitHub Docs
Explore file content and trace changes over time to understand a new codebase and its evolution.
❤16
Питонические атаки
Ещё одна новость про форматирование. Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен…
Если вдруг кому нужна такая же фича в локальном консольном Git или в GUI, типа PyCharm или VSCode, то вот как это делается:
#formatter #git #blame #black
git config --local blame.ignoreRevsFile .git-blame-ignore-revsНужно выполнить после клонирования репозитория. К сожалению, самостоятельно Git находить этот файл пока что не научился.
#formatter #git #blame #black
❤7
Питонические атаки
Ещё одна новость про форматирование. Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен…
А если кому нужна такая же фича в веб-интерфейсе BitBucket, то голосуйте за нашего кандидата вот здесь:
https://jira.atlassian.com/browse/BSERV-12730
#git #bitbucket #blame #black
https://jira.atlassian.com/browse/BSERV-12730
#git #bitbucket #blame #black
❤2
Питонические атаки
Ещё одна новость про форматирование. Одна из популярных причин, почему люди не в восторге от идеи внедрить форматтер кода в свои старые проекты — это замусоривание истории изменений. Появляется царь-коммит, который изменяет весь код сразу, и git blame бессилен…
Для GitLab такая фича тоже обсуждается, ставьте свои пальцы вверх вот сюда:
https://gitlab.com/gitlab-org/gitlab/-/issues/31423
#git #gitlab #blame #black
https://gitlab.com/gitlab-org/gitlab/-/issues/31423
#git #gitlab #blame #black
GitLab
Support ignoring commits in blame (blame.ignoreRevsFile config option) (#31423) · Issues · GitLab.org / GitLab · GitLab
Problem to solve I want to ignore commits when viewing blame (available as of git 2.23)
👍9
Ого, консольный Git становится чуть более человечным. Сколько же раз я копипастил команду, которую он выдаёт в ошибке.
#git
#git
❤23👍6🎉3