GitHub Ready | Git
6.16K subscribers
640 photos
74 videos
1 file
546 links
По всем вопросам: @AdilNow
Download Telegram
🧩 Git Cherry — выбрать коммиты из другой ветки

git cherry показывает, какие коммиты из одной ветки ещё не применены в другой, и позволяет их selectively перенести.

Проверка, какие коммиты отсутствуют в main:

git cherry main feature/login


Применение конкретного коммита:

git cherry-pick <hash>


Полезно:

* перенос отдельного исправления без merge;
* выборочная интеграция фич;
* подготовка патчей для релиза.

git cherry — точечный контроль истории между ветками.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧪 Git Commit –fixup + Rebase –autosquash — автоматическое объединение правок

Если нужно исправить старый коммит, не создавая хаос в истории, используй --fixup.

Создать fixup-коммит:

git commit --fixup=<hash>


Затем запустить:

git rebase -i --autosquash HEAD~5


Что происходит:
• Git автоматически перемещает fixup-коммит рядом с нужным;
• помечает его для squash;
• история становится аккуратной.

Когда применять:
• правки после код-ревью;
• мелкие исправления к старым коммитам;
• чистка истории перед merge.

--fixup + --autosquash — чистая история без ручной возни

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧱 Git Bisect — поиск проблемного коммита

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 для багов.

➡️ GitHub Ready | #урок
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 | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
📦 Git Submodule — работа с внешними репозиториями внутри проекта

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 — аккуратная интеграция внешних репозиториев.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Лучше бы сам разобрался 😂

➡️ GitHub Ready | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7
⚙️ Git Worktree — несколько рабочих директорий из одного репозитория

git worktree позволяет работать с разными ветками параллельно без постоянных переключений.

Создать новую рабочую директорию:

git worktree add ../project-feature feature/login


Что происходит:

* создаётся новая папка;
* она связана с тем же .git;
* в ней сразу активна указанная ветка.

Список активных worktree:

git worktree list


Удаление:

git worktree remove ../project-feature


Когда применять:

* параллельная работа над фичами;
* срочный фикс без stash;
* тестирование разных версий проекта.

git worktree — параллельная разработка без лишних переключений.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
6
🧬 Git Reflog — журнал всех перемещений HEAD

git reflog хранит историю изменений указателя HEAD, даже если коммиты удалены из обычного лога.

Просмотр:

git reflog


Вернуться к состоянию:

git checkout HEAD@{3}


Восстановить «потерянный» коммит:

git reset --hard <hash>


Когда полезно:

* случайный reset --hard;
* удалённая ветка;
* неудачный rebase;
* потерянные коммиты.

reflog — страховка от большинства ошибок в Git.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧩 Git Archive — экспорт репозитория без истории

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 — чистый код без лишней информации о репозитории.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🧠 Git Bisect — поиск коммита, сломавшего проект

git bisect использует бинарный поиск, чтобы определить, в каком коммите появилась ошибка.

Запуск:

git bisect start
git bisect bad # текущая версия с ошибкой
git bisect good <hash> # известный рабочий коммит


Git будет переключаться между коммитами.
После каждой проверки указываешь результат:

git bisect good
# или
git bisect bad


Завершить:

git bisect reset


Когда применять:

* баг появился давно;
* история длинная;
* вручную искать долго.

git bisect сокращает поиск проблемы с сотен коммитов до нескольких шагов.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Кайфы разработчикам игр — мега-коллекция open-source проектов

Когда разработчик задумывает новый игровой проект, первое, что приходит в голову — поиграть в аналоги и изучить их код.

👉 В репо Games on GitHub лежат тонны качественных open-source примеров игр и игровых проектов. Всё разбито по категориям и платформам.


Сслыка

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🗺 Git Log --graph — визуализация истории веток

git log --graph показывает структуру веток в виде ASCII-графа прямо в терминале.

Базовый вариант:

git log --graph


Практичный формат:

git log --oneline --graph --decorate --all


Что дают флаги:

--graph — визуальные ветвления;
--oneline — компактный вывод;
--decorate — теги и ветки;
--all — все ветки.

Когда использовать:

• анализ merge;
• проверка структуры истории;
• понимание, где произошёл rebase.

--graph — быстрый способ увидеть архитектуру истории Git.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🔍 Git Cherry-Pick — перенос конкретного коммита

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 — точечный перенос изменений без лишней истории.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚡️ clearcam — превращаем старый iPhone или RTSP-камеру в умную систему безопасности с AI

Обычная камера становится локальной 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

➡️ GitHub Ready | #урок
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
3👍1
🤩 Шаблон для запуска локальных ИИ в одном пакете

Проект из репо Self-hosted AI Package представлен в виде файла Docker-compose, который уже настроен для сети и диска.

👉 Он предназначен для запуска рабочих процессов локальных ИИ в одном пакете и его можно настроить под конкретные задачи.


Ссылка

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
⚙️ Git Reflog — восстановление потерянных коммитов

git reflog показывает историю перемещений HEAD, даже если коммиты исчезли из ветки.

Просмотр истории:

git reflog


Найти нужный хеш:

git reflog --oneline


Вернуться к состоянию:

git reset --hard <hash>


Создать ветку из прошлого состояния:

git checkout -b restore-branch <hash>


Когда применять:
• случайный reset --hard;
• удаление ветки;
• потерянный commit после rebase.

reflog хранит локальную историю действий — пока объект не удалён сборщиком мусора, его можно вернуть.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧹 Как удалить ветки, которых больше нет на сервере?

Со временем локальный список веток забивается «мусором» — ветками, которые уже слиты и удалены из удаленного репозитория (origin). Обычный git pull их не чистит.

Задача:

* Синхронизировать список веток с сервером.
* Удалить локальные ссылки на несуществующие удаленные ветки.

Решение:

Используем команду fetch с флагом --prune (или -p), которая подчистит все устаревшие ссылки:

# Очистить ссылки на удаленные ветки
git fetch --prune

# Сделать это поведение автоматическим для всех будущих pull
git config --global fetch.prune true



Что это дает?
Команда удаляет только "remote-tracking" ветки (те, что видны как origin/branch-name). Это делает вывод git branch -a чистым и актуальным, избавляя тебя от путаницы в истории.

🔥 — если не знал про автоматическую чистку
🤝 — если чистишь репозиторий вручную

➡️ GitHub Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤝2👍1
📦 Как временно спрятать изменения без коммита? (Git Stash)

Бывает, что ты в разгаре работы, и тут прилетает срочная задача — нужно переключить ветку. Но код еще не готов для коммита, а терять наработки нельзя.

Задача:

* Сохранить текущие правки во временном хранилище.
* Вернуть рабочую директорию к чистому состоянию для переключения веток.

Решение:

Используем команду stash. Она как «карман», куда можно быстро положить изменения:

# Спрятать все текущие изменения (staged и unstaged)
git stash

# Спрятать изменения и дать им имя (чтобы не запутаться)
git stash save "Работа над хедером"

# Посмотреть список всех "заначек"
git stash list

# Вернуть последние изменения и удалить их из хранилища
git stash pop

# Применить изменения, но оставить их в списке stash
git stash apply



Почему это удобно?
Тебе не нужно создавать «мусорные» коммиты вроде "temp" или "WIP", которые потом придется склеивать. Ты просто откладываешь работу в сторону и возвращаешься к ней, когда удобно.

🔥 — если постоянно пользуешься «заначкой»
🤝 — если предпочитаешь делать временные коммиты

➡️ GitHub Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝31