🧩 Git Cherry — выбрать коммиты из другой ветки
Проверка, какие коммиты отсутствуют в
Применение конкретного коммита:
Полезно:
* перенос отдельного исправления без merge;
* выборочная интеграция фич;
* подготовка патчей для релиза.
➡️ GitHub Ready | #урок
git cherry показывает, какие коммиты из одной ветки ещё не применены в другой, и позволяет их selectively перенести.Проверка, какие коммиты отсутствуют в
main:git cherry main feature/login
Применение конкретного коммита:
git cherry-pick <hash>
Полезно:
* перенос отдельного исправления без merge;
* выборочная интеграция фич;
* подготовка патчей для релиза.
git cherry — точечный контроль истории между ветками.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🧪 Git Commit –fixup + Rebase –autosquash — автоматическое объединение правок
Если нужно исправить старый коммит, не создавая хаос в истории, используй --fixup.
Создать fixup-коммит:
Затем запустить:
Что происходит:
• Git автоматически перемещает fixup-коммит рядом с нужным;
• помечает его для squash;
• история становится аккуратной.
Когда применять:
• правки после код-ревью;
• мелкие исправления к старым коммитам;
• чистка истории перед merge.
--fixup + --autosquash — чистая история без ручной возни
➡️ GitHub Ready | #урок
Если нужно исправить старый коммит, не создавая хаос в истории, используй --fixup.
Создать fixup-коммит:
git commit --fixup=<hash>
Затем запустить:
git rebase -i --autosquash HEAD~5
Что происходит:
• Git автоматически перемещает fixup-коммит рядом с нужным;
• помечает его для squash;
• история становится аккуратной.
Когда применять:
• правки после код-ревью;
• мелкие исправления к старым коммитам;
• чистка истории перед merge.
--fixup + --autosquash — чистая история без ручной возни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧱 Git Bisect — поиск проблемного коммита
Начало:
Git переключает ветку на средний коммит, проверяешь баг:
После серии шагов:
Преимущество:
* быстрое нахождение проблемного коммита;
* особенно полезно для длинной истории;
* экономит часы ручной проверки.
➡️ GitHub Ready | #урок
git bisect помогает быстро найти коммит, который ввёл баг, используя бинарный поиск.Начало:
git bisect start
git bisect bad # текущий коммит с багом
git bisect good v1.0 # известный рабочий коммит
Git переключает ветку на средний коммит, проверяешь баг:
git bisect good # если баг отсутствует
git bisect bad # если баг есть
После серии шагов:
git bisect reset
Преимущество:
* быстрое нахождение проблемного коммита;
* особенно полезно для длинной истории;
* экономит часы ручной проверки.
git bisect — детектив Git для багов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
DrawNmap
Дружественный графический вывод инструмента nmap, позволяющий осуществлять фильтрацию по открытым портам
Гитхаб
➡️ GitHub Ready | #урок
Дружественный графический вывод инструмента nmap, позволяющий осуществлять фильтрацию по открытым портам
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
📦 Git Submodule — работа с внешними репозиториями внутри проекта
Submodule позволяет включать один репозиторий как подпроект другого.
Добавление submodule:
Инициализация и обновление:
Обновление до последнего коммита remote:
Полезно:
* повторное использование кода;
* фиксация версии внешней библиотеки;
* контроль изменений submodule.
➡️ GitHub Ready | #урок
Submodule позволяет включать один репозиторий как подпроект другого.
Добавление submodule:
git submodule add https://github.com/org/lib.git libs/lib
Инициализация и обновление:
git submodule init
git submodule update
Обновление до последнего коммита remote:
cd libs/lib
git fetch
git checkout main
cd ../..
git add libs/lib
git commit -m "update submodule"
Полезно:
* повторное использование кода;
* фиксация версии внешней библиотеки;
* контроль изменений submodule.
git submodule — аккуратная интеграция внешних репозиториев.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ Git Worktree — несколько рабочих директорий из одного репозитория
Создать новую рабочую директорию:
Что происходит:
* создаётся новая папка;
* она связана с тем же
* в ней сразу активна указанная ветка.
Список активных worktree:
Удаление:
Когда применять:
* параллельная работа над фичами;
* срочный фикс без stash;
* тестирование разных версий проекта.
➡️ GitHub Ready | #Уроки
git worktree позволяет работать с разными ветками параллельно без постоянных переключений.Создать новую рабочую директорию:
git worktree add ../project-feature feature/login
Что происходит:
* создаётся новая папка;
* она связана с тем же
.git;* в ней сразу активна указанная ветка.
Список активных worktree:
git worktree list
Удаление:
git worktree remove ../project-feature
Когда применять:
* параллельная работа над фичами;
* срочный фикс без stash;
* тестирование разных версий проекта.
git worktree — параллельная разработка без лишних переключений.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
🧬 Git Reflog — журнал всех перемещений HEAD
Просмотр:
Вернуться к состоянию:
Восстановить «потерянный» коммит:
Когда полезно:
* случайный
* удалённая ветка;
* неудачный rebase;
* потерянные коммиты.
➡️ GitHub Ready | #Уроки
git reflog хранит историю изменений указателя HEAD, даже если коммиты удалены из обычного лога.Просмотр:
git reflog
Вернуться к состоянию:
git checkout HEAD@{3}
Восстановить «потерянный» коммит:
git reset --hard <hash>
Когда полезно:
* случайный
reset --hard;* удалённая ветка;
* неудачный rebase;
* потерянные коммиты.
reflog — страховка от большинства ошибок в Git.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🧩 Git Archive — экспорт репозитория без истории
Создать zip архива текущей ветки:
Архивировать конкретную ветку:
Архивировать только поддиректорию:
Применение:
* деплой без истории;
* передача кода клиенту;
* CI/CD для сборок.
➡️ GitHub Ready | #Уроки
git archive создаёт архив проекта из конкретного коммита или ветки, без папки .git.Создать zip архива текущей ветки:
git archive --format=zip HEAD > project.zip
Архивировать конкретную ветку:
git archive --format=tar main | gzip > main.tar.gz
Архивировать только поддиректорию:
git archive HEAD src/ > src.tar
Применение:
* деплой без истории;
* передача кода клиенту;
* CI/CD для сборок.
git archive — чистый код без лишней информации о репозитории.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🧠 Git Bisect — поиск коммита, сломавшего проект
Запуск:
Git будет переключаться между коммитами.
После каждой проверки указываешь результат:
Завершить:
Когда применять:
* баг появился давно;
* история длинная;
* вручную искать долго.
➡️ GitHub Ready | #Уроки
git bisect использует бинарный поиск, чтобы определить, в каком коммите появилась ошибка.Запуск:
git bisect start
git bisect bad # текущая версия с ошибкой
git bisect good <hash> # известный рабочий коммит
Git будет переключаться между коммитами.
После каждой проверки указываешь результат:
git bisect good
# или
git bisect bad
Завершить:
git bisect reset
Когда применять:
* баг появился давно;
* история длинная;
* вручную искать долго.
git bisect сокращает поиск проблемы с сотен коммитов до нескольких шагов.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Кайфы разработчикам игр — мега-коллекция open-source проектов
Сслыка
➡️ GitHub Ready | #урок
Когда разработчик задумывает новый игровой проект, первое, что приходит в голову — поиграть в аналоги и изучить их код.👉 В репо Games on GitHub лежат тонны качественных open-source примеров игр и игровых проектов. Всё разбито по категориям и платформам.
Сслыка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🗺 Git Log --graph — визуализация истории веток
Базовый вариант:
Практичный формат:
Что дают флаги:
•
•
•
•
Когда использовать:
• анализ merge;
• проверка структуры истории;
• понимание, где произошёл rebase.
➡️ GitHub Ready | #урок
git log --graph показывает структуру веток в виде ASCII-графа прямо в терминале.Базовый вариант:
git log --graph
Практичный формат:
git log --oneline --graph --decorate --all
Что дают флаги:
•
--graph — визуальные ветвления;•
--oneline — компактный вывод;•
--decorate — теги и ветки;•
--all — все ветки.Когда использовать:
• анализ merge;
• проверка структуры истории;
• понимание, где произошёл rebase.
--graph — быстрый способ увидеть архитектуру истории Git.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🔍 Git Cherry-Pick — перенос конкретного коммита
Перенести коммит:
Несколько подряд:
Диапазон:
При конфликте:
Отмена:
Когда применять:
* нужен один фикс без merge всей ветки;
* перенос hotfix в production;
* синхронизация между релизными ветками.
➡️ GitHub Ready | #урок
git cherry-pick применяет один выбранный коммит из другой ветки в текущую.Перенести коммит:
git cherry-pick <hash>
Несколько подряд:
git cherry-pick <hash1> <hash2>
Диапазон:
git cherry-pick A^..B
При конфликте:
git add .
git cherry-pick --continue
Отмена:
git cherry-pick --abort
Когда применять:
* нужен один фикс без merge всей ветки;
* перенос hotfix в production;
* синхронизация между релизными ветками.
cherry-pick — точечный перенос изменений без лишней истории.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚡️ clearcam — превращаем старый iPhone или RTSP-камеру в умную систему безопасности с AI
Обычная камера становится локальной AI-системой наблюдения — без облаков и подписок.
Возможности:
* 🖱 Поддержка RTSP-камер и старых iPhone
* 🖱 Детекция событий с помощью AI (не просто запись 24/7)
* 🖱 Получение стримов и уведомлений
* 🖱 Локальная работа без облачных сервисов
По сути: сам себе NVR + AI-инференс на Python
Запуск:
* Опционально: вводишь Clearcam Premium UserID для стримов и уведомлений
* Открываешь localhost:8080 в браузере — и готово
⚡️ Для ускорения работы:
Идеально для:
дома
гаража
мастерской
офиса
экспериментов с AI и computer vision
🔐 Старая камера — не мусор, а потенциальная AI-система безопасности
GitHub / : clearcam
➡️ GitHub Ready | #урок
Обычная камера становится локальной AI-системой наблюдения — без облаков и подписок.
Возможности:
* 🖱 Поддержка RTSP-камер и старых iPhone
* 🖱 Детекция событий с помощью AI (не просто запись 24/7)
* 🖱 Получение стримов и уведомлений
* 🖱 Локальная работа без облачных сервисов
По сути: сам себе NVR + AI-инференс на Python
Запуск:
git clone https://github.com/roryclear/clearcam.git
cd clearcam
pip install -r requirements.txt
python3 clearcam.py
* Опционально: вводишь Clearcam Premium UserID для стримов и уведомлений
* Открываешь localhost:8080 в браузере — и готово
⚡️ Для ускорения работы:
BEAM=2 python3 clearcam.py
Идеально для:
дома
гаража
мастерской
офиса
экспериментов с AI и computer vision
🔐 Старая камера — не мусор, а потенциальная AI-система безопасности
GitHub / : clearcam
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
add-skill — единый менеджер Skills для AI-инструментов кодинга
Количество AI-тулзов растёт, у каждого свои директории и форматы конфигов для Skills. В результате — хаос с путями, рассинхронизация и ручное обновление.
Команда Vercel Labs выложила в open source инструмент add-skill, который унифицирует управление скиллами по принципу npm.
Идея
— берёшь skill-репозиторий с GitHub
— одной командой устанавливаешь его
— инструмент сам определяет, какие AI-агенты установлены
— конфиги автоматически раскладываются по нужным директориям
Поддержка
Сейчас add-skill работает с 13 популярными инструментами, включая:
— OpenCode
— Claude Code
— Codex
— Cursor
Skills-маркет
Доступен каталог готовых Skills:
— описание
— количество установок
— быстрая установка через копирование команды
Для тех, кто использует несколько AI-кодинг инструментов одновременно, add-skill решает проблему рассинхронизации и ручного менеджмента конфигов.
Cсылка GitHub
Количество AI-тулзов растёт, у каждого свои директории и форматы конфигов для Skills. В результате — хаос с путями, рассинхронизация и ручное обновление.
Команда Vercel Labs выложила в open source инструмент add-skill, который унифицирует управление скиллами по принципу npm.
Идея
— берёшь skill-репозиторий с GitHub
— одной командой устанавливаешь его
— инструмент сам определяет, какие AI-агенты установлены
— конфиги автоматически раскладываются по нужным директориям
Поддержка
Сейчас add-skill работает с 13 популярными инструментами, включая:
— OpenCode
— Claude Code
— Codex
— Cursor
Skills-маркет
Доступен каталог готовых Skills:
— описание
— количество установок
— быстрая установка через копирование команды
Для тех, кто использует несколько AI-кодинг инструментов одновременно, add-skill решает проблему рассинхронизации и ручного менеджмента конфигов.
Cсылка GitHub
❤3👍1
Проект из репо Self-hosted AI Package представлен в виде файла Docker-compose, который уже настроен для сети и диска.👉 Он предназначен для запуска рабочих процессов локальных ИИ в одном пакете и его можно настроить под конкретные задачи.
Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
⚙️ Git Reflog — восстановление потерянных коммитов
git reflog показывает историю перемещений HEAD, даже если коммиты исчезли из ветки.
Просмотр истории:
Найти нужный хеш:
Вернуться к состоянию:
Создать ветку из прошлого состояния:
Когда применять:
• случайный reset --hard;
• удаление ветки;
• потерянный commit после rebase.
reflog хранит локальную историю действий — пока объект не удалён сборщиком мусора, его можно вернуть.
➡️ GitHub Ready | #урок
git reflog показывает историю перемещений HEAD, даже если коммиты исчезли из ветки.
Просмотр истории:
git reflog
Найти нужный хеш:
git reflog --oneline
Вернуться к состоянию:
git reset --hard <hash>
Создать ветку из прошлого состояния:
git checkout -b restore-branch <hash>
Когда применять:
• случайный reset --hard;
• удаление ветки;
• потерянный commit после rebase.
reflog хранит локальную историю действий — пока объект не удалён сборщиком мусора, его можно вернуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🧹 Как удалить ветки, которых больше нет на сервере?
Со временем локальный список веток забивается «мусором» — ветками, которые уже слиты и удалены из удаленного репозитория (origin). Обычный
Задача:
* Синхронизировать список веток с сервером.
* Удалить локальные ссылки на несуществующие удаленные ветки.
Решение:
Используем команду
Что это дает?
Команда удаляет только "remote-tracking" ветки (те, что видны как
🔥 — если не знал про автоматическую чистку
🤝 — если чистишь репозиторий вручную
➡️ GitHub Ready | #совет
Со временем локальный список веток забивается «мусором» — ветками, которые уже слиты и удалены из удаленного репозитория (origin). Обычный
git pull их не чистит.Задача:
* Синхронизировать список веток с сервером.
* Удалить локальные ссылки на несуществующие удаленные ветки.
Решение:
Используем команду
fetch с флагом --prune (или -p), которая подчистит все устаревшие ссылки:# Очистить ссылки на удаленные ветки
git fetch --prune
# Сделать это поведение автоматическим для всех будущих pull
git config --global fetch.prune true
Что это дает?
Команда удаляет только "remote-tracking" ветки (те, что видны как
origin/branch-name). Это делает вывод git branch -a чистым и актуальным, избавляя тебя от путаницы в истории.🔥 — если не знал про автоматическую чистку
🤝 — если чистишь репозиторий вручную
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🤝2👍1
📦 Как временно спрятать изменения без коммита? (Git Stash)
Бывает, что ты в разгаре работы, и тут прилетает срочная задача — нужно переключить ветку. Но код еще не готов для коммита, а терять наработки нельзя.
Задача:
* Сохранить текущие правки во временном хранилище.
* Вернуть рабочую директорию к чистому состоянию для переключения веток.
Решение:
Используем команду
Почему это удобно?
Тебе не нужно создавать «мусорные» коммиты вроде "temp" или "WIP", которые потом придется склеивать. Ты просто откладываешь работу в сторону и возвращаешься к ней, когда удобно.
🔥 — если постоянно пользуешься «заначкой»
🤝 — если предпочитаешь делать временные коммиты
➡️ GitHub Ready | #совет
Бывает, что ты в разгаре работы, и тут прилетает срочная задача — нужно переключить ветку. Но код еще не готов для коммита, а терять наработки нельзя.
Задача:
* Сохранить текущие правки во временном хранилище.
* Вернуть рабочую директорию к чистому состоянию для переключения веток.
Решение:
Используем команду
stash. Она как «карман», куда можно быстро положить изменения:# Спрятать все текущие изменения (staged и unstaged)
git stash
# Спрятать изменения и дать им имя (чтобы не запутаться)
git stash save "Работа над хедером"
# Посмотреть список всех "заначек"
git stash list
# Вернуть последние изменения и удалить их из хранилища
git stash pop
# Применить изменения, но оставить их в списке stash
git stash apply
Почему это удобно?
Тебе не нужно создавать «мусорные» коммиты вроде "temp" или "WIP", которые потом придется склеивать. Ты просто откладываешь работу в сторону и возвращаешься к ней, когда удобно.
🔥 — если постоянно пользуешься «заначкой»
🤝 — если предпочитаешь делать временные коммиты
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝3❤1