🧾 Conventional Commits — зачем нужен единый формат коммитов
Conventional Commits — соглашение о структуре сообщений коммитов, которое упрощает навигацию по истории и автоматизацию релизов.
Формат:
Примеры:
Что это даёт:
• читаемая история;
• автоматический changelog;
• корректный semver;
• проще код-ревью.
Conventional Commits — фундамент для масштабируемой разработки.
➡️ GitHub Ready | #урок
Conventional Commits — соглашение о структуре сообщений коммитов, которое упрощает навигацию по истории и автоматизацию релизов.
Формат:
type(scope): краткое описание
Примеры:
feat(auth): add token refresh
fix(ui): fix modal closing bug
refactor(api): simplify handlers
Что это даёт:
• читаемая история;
• автоматический changelog;
• корректный semver;
• проще код-ревью.
Conventional Commits — фундамент для масштабируемой разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🗂 Git Worktree — несколько рабочих копий одного репозитория
git worktree позволяет иметь несколько рабочих директорий для одного репозитория без лишних clone.
Добавить новую рабочую копию:
Список worktree:
Удаление:
Когда полезно:
• параллельная работа над фичей и хотфиксом;
• тестирование разных веток одновременно;
• экономия места и времени.
worktree — альтернатива постоянным stash и переключениям веток.
➡️ GitHub Ready | #урок
git worktree позволяет иметь несколько рабочих директорий для одного репозитория без лишних clone.
Добавить новую рабочую копию:
git worktree add ../hotfix main
Список worktree:
git worktree list
Удаление:
git worktree remove ../hotfix
Когда полезно:
• параллельная работа над фичей и хотфиксом;
• тестирование разных веток одновременно;
• экономия места и времени.
worktree — альтернатива постоянным stash и переключениям веток.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🧭 Git HEAD — что это и как он управляет репозиторием
HEAD — указатель на текущее состояние репозитория. Обычно он указывает на ветку, а ветка — на последний коммит.
Проверить, куда указывает HEAD:
Типичные случаи:
• HEAD -> main — нормальная работа;
• HEAD -> feature — работа в фиче-ветке;
• HEAD detached — HEAD указывает прямо на коммит.
Перемещение HEAD:
Важно:
• коммиты всегда создаются там, куда указывает HEAD;
• понимание HEAD = меньше «магии» в Git;
• большинство ошибок — это потерянный контекст HEAD.
Git становится простым, когда ясно, куда смотрит HEAD.
➡️ GitHub Ready | #урок
HEAD — указатель на текущее состояние репозитория. Обычно он указывает на ветку, а ветка — на последний коммит.
Проверить, куда указывает HEAD:
cat .git/HEAD
Типичные случаи:
• HEAD -> main — нормальная работа;
• HEAD -> feature — работа в фиче-ветке;
• HEAD detached — HEAD указывает прямо на коммит.
Перемещение HEAD:
git checkout HEAD~1
Важно:
• коммиты всегда создаются там, куда указывает HEAD;
• понимание HEAD = меньше «магии» в Git;
• большинство ошибок — это потерянный контекст HEAD.
Git становится простым, когда ясно, куда смотрит HEAD.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🧩 Git Reset — чем отличаются --soft, --mixed, --hard
git reset перемещает HEAD и по-разному влияет на индекс и рабочую директорию. Ошибки здесь самые дорогие, поэтому важно понимать разницу.
--soft
• сдвигает HEAD;
• индекс и файлы не трогает;
• коммит «отменён», изменения готовы к новому коммиту.
--mixed (по умолчанию)
• сдвигает HEAD;
• очищает индекс;
• файлы остаются изменёнными.
--hard
• сдвигает HEAD;
• очищает индекс;
• удаляет изменения в файлах.
reset — инструмент контроля, а не отката «наугад».
➡️ GitHub Ready | #урок
git reset перемещает HEAD и по-разному влияет на индекс и рабочую директорию. Ошибки здесь самые дорогие, поэтому важно понимать разницу.
--soft
git reset --soft HEAD~1
• сдвигает HEAD;
• индекс и файлы не трогает;
• коммит «отменён», изменения готовы к новому коммиту.
--mixed (по умолчанию)
git reset HEAD~1
• сдвигает HEAD;
• очищает индекс;
• файлы остаются изменёнными.
--hard
git reset --hard HEAD~1
• сдвигает HEAD;
• очищает индекс;
• удаляет изменения в файлах.
reset — инструмент контроля, а не отката «наугад».
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
💡 Git Diff — сравниваем изменения на лету
git diff показывает, что изменилось между коммитами, ветками или рабочей директорией.
Примеры использования:
• Изменения в рабочей директории перед коммитом:
• Изменения между индексом и последним коммитом:
• Сравнение двух веток:
• Конкретного файла:
💡 Полезно для проверки работы перед коммитом и анализа истории без открытия внешних инструментов.
➡️ GitHub Ready | #урок
git diff показывает, что изменилось между коммитами, ветками или рабочей директорией.
Примеры использования:
• Изменения в рабочей директории перед коммитом:
git diff
• Изменения между индексом и последним коммитом:
git diff --cached
• Сравнение двух веток:
git diff main..feature
• Конкретного файла:
git diff HEAD~1 README.md
💡 Полезно для проверки работы перед коммитом и анализа истории без открытия внешних инструментов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
🧠 Git Config — управление поведением Git
git config отвечает за настройки Git: от имени автора до стратегий слияния. Понимание уровней конфигурации избавляет от неожиданных эффектов.
Уровни конфигурации:
• --system — для всей системы;
• --global — для пользователя;
• --local — для конкретного репозитория.
Примеры:
Посмотреть все активные настройки:
Удалить параметр:
git config — это не разовая команда, а фундамент стабильной работы с Git.
➡️ GitHub Ready | #урок
git config отвечает за настройки Git: от имени автора до стратегий слияния. Понимание уровней конфигурации избавляет от неожиданных эффектов.
Уровни конфигурации:
• --system — для всей системы;
• --global — для пользователя;
• --local — для конкретного репозитория.
Примеры:
git config --global user.name "Nadir"
git config --global user.email "mail@example.com"
Посмотреть все активные настройки:
git config --list --show-origin
Удалить параметр:
git config --unset user.name
git config — это не разовая команда, а фундамент стабильной работы с Git.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
За это видео мне заплатили 20.000 рублей, но его сделало ИИ 😎
Никакого волшебства. Достаточно владеть ИИшками хотя бы на 6/10, чтобы превратить это в полноценный источник дохода.
Так что если хочешь разобраться, занять место в свежей нише и делать там от 250к в месяц — тебе в Tech Lab
Тут авторы реально шарят за IT-стартапы и ИИ-разработки, так что сохраняйте — будет куча интересного, даже если ни разу не пользовались ИИ: @TechLab
Никакого волшебства. Достаточно владеть ИИшками хотя бы на 6/10, чтобы превратить это в полноценный источник дохода.
Так что если хочешь разобраться, занять место в свежей нише и делать там от 250к в месяц — тебе в Tech Lab
Тут авторы реально шарят за IT-стартапы и ИИ-разработки, так что сохраняйте — будет куча интересного, даже если ни разу не пользовались ИИ: @TechLab
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4🔥2
🔄 Git Pull — fetch + merge или fetch + rebase
git pull обновляет вашу ветку с удалённого репозитория, но стратегия слияния влияет на историю.
По умолчанию:
• делает fetch + merge;
• создаёт merge-коммит, если есть новые изменения.
Чтобы сохранить линейную историю:
• переносит ваши коммиты поверх удалённых;
• история остаётся чистой.
Можно настроить по умолчанию:
💡 Понимание стратегии pull помогает избежать «грязных» merge-коммитов и конфликтов в команде.
➡️ GitHub Ready | #урок
git pull обновляет вашу ветку с удалённого репозитория, но стратегия слияния влияет на историю.
По умолчанию:
git pull
• делает fetch + merge;
• создаёт merge-коммит, если есть новые изменения.
Чтобы сохранить линейную историю:
git pull --rebase
• переносит ваши коммиты поверх удалённых;
• история остаётся чистой.
Можно настроить по умолчанию:
git config --global pull.rebase true
💡 Понимание стратегии pull помогает избежать «грязных» merge-коммитов и конфликтов в команде.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🏷 Git Tag — фиксация релизов и важных состояний
git tag используется для пометки конкретных коммитов: релизы, версии, контрольные точки.
Типы тегов:
• lightweight — простой указатель;
• annotated — полноценный объект с описанием и автором.
Создание:
Просмотр тегов:
Отправка тегов в remote:
Использование:
• релизы и hotfix;
• CI/CD;
• точная навигация по версиям.
Теги — это якоря стабильности в истории Git.
➡️ GitHub Ready | #урок
git tag используется для пометки конкретных коммитов: релизы, версии, контрольные точки.
Типы тегов:
• lightweight — простой указатель;
• annotated — полноценный объект с описанием и автором.
Создание:
git tag v1.0.0
git tag -a v1.1.0 -m "release 1.1.0"
Просмотр тегов:
git tag
git show v1.0.0
Отправка тегов в remote:
git push origin v1.0.0
git push origin --tags
Использование:
• релизы и hotfix;
• CI/CD;
• точная навигация по версиям.
Теги — это якоря стабильности в истории Git.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1
📂 Git Archive — экспорт проекта без .git
git archive позволяет собрать архив из репозитория без истории и служебных файлов. Удобно для передачи кода или деплоя.
Создание архива:
Экспорт конкретной ветки:
Экспорт поддиректории:
Особенности:
• без папки .git;
• ровно то состояние, что в коммите;
• подходит для CI и релизов.
git archive — чистый код без лишнего контекста.
➡️ GitHub Ready | #урок
git archive позволяет собрать архив из репозитория без истории и служебных файлов. Удобно для передачи кода или деплоя.
Создание архива:
git archive --format=zip HEAD > project.zip
Экспорт конкретной ветки:
git archive --format=tar main | gzip > main.tar.gz
Экспорт поддиректории:
git archive HEAD src/ > src.tar
Особенности:
• без папки .git;
• ровно то состояние, что в коммите;
• подходит для CI и релизов.
git archive — чистый код без лишнего контекста.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
🧪 Git Show — просмотр одного коммита без шума
git show позволяет быстро посмотреть содержимое конкретного коммита: изменения, автора и сообщение.
Базовое использование:
Полезные варианты:
• Только изменения файлов:
• Конкретный файл из коммита:
• Без diff, только сообщение:
Когда использовать:
• анализ правок;
• код-ревью;
• быстрый контекст без git log.
git show — минимализм для работы с историей.
➡️ GitHub Ready | #урок
git show позволяет быстро посмотреть содержимое конкретного коммита: изменения, автора и сообщение.
Базовое использование:
git show <hash>
Полезные варианты:
• Только изменения файлов:
git show --stat <hash>
• Конкретный файл из коммита:
git show <hash>:src/app.js
• Без diff, только сообщение:
git show --no-patch <hash>
Когда использовать:
• анализ правок;
• код-ревью;
• быстрый контекст без git log.
git show — минимализм для работы с историей.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🧷 Git Alias — короткие команды вместо длинных
git alias позволяет создавать свои сокращения для часто используемых команд.
Примеры:
Более полезные алиасы:
Просмотр всех алиасов:
Alias — ускорение работы без плагинов и магии.
➡️ GitHub Ready | #урок
git alias позволяет создавать свои сокращения для часто используемых команд.
Примеры:
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
Более полезные алиасы:
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.unstage "reset HEAD --"
Просмотр всех алиасов:
git config --get-regexp alias
Alias — ускорение работы без плагинов и магии.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🌿 Git Clean + Dry Run — безопасная очистка проекта
Иногда в рабочей директории скапливаются временные файлы, логи и артефакты сборки. git clean помогает убрать их, но безопаснее сначала проверить, что удалится.
Проверка без удаления:
Удаление файлов:
Удаление файлов и директорий:
Игнорирование .gitignore:
💡 Использование -n перед -f спасает от случайной потери нужных файлов.
➡️ GitHub Ready | #урок
Иногда в рабочей директории скапливаются временные файлы, логи и артефакты сборки. git clean помогает убрать их, но безопаснее сначала проверить, что удалится.
Проверка без удаления:
git clean -n
Удаление файлов:
git clean -f
Удаление файлов и директорий:
git clean -fd
Игнорирование .gitignore:
git clean -fx
💡 Использование -n перед -f спасает от случайной потери нужных файлов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🔁 Git Fetch — обновление без вмешательства в код
git fetch загружает изменения из удалённого репозитория, но не трогает рабочую директорию и текущую ветку.
Базовое использование:
Что происходит:
• обновляются ссылки origin/*;
• локальный код не меняется;
• можно спокойно анализировать изменения.
Сравнение перед слиянием:
Обновление всех remote:
fetch — контроль и обзор перед любыми изменениями.
➡️ GitHub Ready | #урок
git fetch загружает изменения из удалённого репозитория, но не трогает рабочую директорию и текущую ветку.
Базовое использование:
git fetch
Что происходит:
• обновляются ссылки origin/*;
• локальный код не меняется;
• можно спокойно анализировать изменения.
Сравнение перед слиянием:
git diff main origin/main
Обновление всех remote:
git fetch --all
fetch — контроль и обзор перед любыми изменениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🧯 Git Revert — безопасный откат в публичных ветках
git revert отменяет изменения через новый коммит, не переписывая историю. Это ключевое отличие от reset.
Откат одного коммита:
Откат диапазона:
Если возник конфликт:
Почему это важно:
• история не ломается;
• безопасно для main / develop;
• подходит для командной работы.
revert — правильный способ отмены, когда коммиты уже в общем доступе.
➡️ GitHub Ready | #урок
git revert отменяет изменения через новый коммит, не переписывая историю. Это ключевое отличие от reset.
Откат одного коммита:
git revert <hash>
Откат диапазона:
git revert <hash1>..<hash2>
Если возник конфликт:
git revert --continue
Почему это важно:
• история не ломается;
• безопасно для main / develop;
• подходит для командной работы.
revert — правильный способ отмены, когда коммиты уже в общем доступе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🧠 Git GC — что это и зачем он нужен
git gc (garbage collection) — команда для очистки и оптимизации репозитория. Удаляет недостижимые объекты и сжимает данные.
Ручной запуск:
Более агрессивная очистка:
Что делает:
• уменьшает размер репозитория;
• ускоряет git log, status, diff;
• чистит старые объекты после rebase/reset.
Важно:
• обычно Git запускает GC сам;
• --aggressive — редко и осознанно;
• не влияет на историю коммитов.
git gc — техобслуживание, а не средство «починки» Git.
➡️ GitHub Ready | #урок
git gc (garbage collection) — команда для очистки и оптимизации репозитория. Удаляет недостижимые объекты и сжимает данные.
Ручной запуск:
git gc
Более агрессивная очистка:
git gc --aggressive
Что делает:
• уменьшает размер репозитория;
• ускоряет git log, status, diff;
• чистит старые объекты после rebase/reset.
Важно:
• обычно Git запускает GC сам;
• --aggressive — редко и осознанно;
• не влияет на историю коммитов.
git gc — техобслуживание, а не средство «починки» Git.
Please open Telegram to view this post
VIEW IN TELEGRAM
🪜 Git Upstream — связь локальной ветки с удалённой
Upstream определяет, с какой удалённой веткой связана локальная. Без него git pull и git push работают неявно или требуют аргументов.
Установить upstream:
Проверить связь:
Изменить upstream:
Зачем это нужно:
• короткие git pull / git push;
• понятная синхронизация;
• меньше ошибок с не теми ветками.
Upstream — основа предсказуемой работы с remote.
➡️ GitHub Ready | #урок
Upstream определяет, с какой удалённой веткой связана локальная. Без него git pull и git push работают неявно или требуют аргументов.
Установить upstream:
git push -u origin feature/login
Проверить связь:
git branch -vv
Изменить upstream:
git branch --set-upstream-to=origin/main
Зачем это нужно:
• короткие git pull / git push;
• понятная синхронизация;
• меньше ошибок с не теми ветками.
Upstream — основа предсказуемой работы с remote.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🧰 Git Rerere — автоматическое запоминание конфликтов
git rerere (reuse recorded resolution) запоминает, как ты решал конфликты, и автоматически применяет это решение в будущем.
Включение:
Как работает:
• при конфликте ты решаешь его вручную;
• Git сохраняет решение;
• при повторном конфликте — применяет его сам.
Проверка статуса:
Очистка сохранённых решений:
Полезно:
• частые rebase;
• долгоживущие ветки;
• повторяющиеся конфликты.
rerere — экономия времени там, где конфликты неизбежны.
➡️ GitHub Ready | #урок
git rerere (reuse recorded resolution) запоминает, как ты решал конфликты, и автоматически применяет это решение в будущем.
Включение:
git config --global rerere.enabled true
Как работает:
• при конфликте ты решаешь его вручную;
• Git сохраняет решение;
• при повторном конфликте — применяет его сам.
Проверка статуса:
git rerere status
Очистка сохранённых решений:
git rerere clear
Полезно:
• частые rebase;
• долгоживущие ветки;
• повторяющиеся конфликты.
rerere — экономия времени там, где конфликты неизбежны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
100k+ GitHub звезд. 2M посещений за неделю + запущенная соцсеть Moltbook для ИИ-агентов. Кажется, это название закрепилось надолго.
Твой помощник. Твоя машина. Твои правила. Уже успели попробовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
🧱 Git Sparse-Checkout — работать только с частью репозитория
sparse-checkout позволяет загружать и держать в рабочей директории не весь репозиторий, а только нужные каталоги.
Включение:
Указать нужные директории:
Отключение:
Когда полезно:
• монорепозитории;
• большие проекты;
• ограниченные ресурсы.
sparse-checkout — контроль объёма без костылей и дополнительных clone.
➡️ GitHub Ready | #урок
sparse-checkout позволяет загружать и держать в рабочей директории не весь репозиторий, а только нужные каталоги.
Включение:
git sparse-checkout init
Указать нужные директории:
git sparse-checkout set src docs
Отключение:
git sparse-checkout disable
Когда полезно:
• монорепозитории;
• большие проекты;
• ограниченные ресурсы.
sparse-checkout — контроль объёма без костылей и дополнительных clone.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2