GitHub Ready | Git
6.16K subscribers
641 photos
74 videos
1 file
547 links
По всем вопросам: @AdilNow
Download Telegram
🧩 Git Shortlog — краткая статистика по коммитам

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

Базовое использование:

git shortlog


Список авторов с количеством коммитов:

git shortlog -s -n


* -s — только числа;
* -n — сортировка по количеству коммитов.

Фильтр по ветке или диапазону:

git shortlog main..feature


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

* отчёт для менеджеров;
* подготовка релизного отчёта;
* обзор активности команды.

shortlog — быстрый взгляд на вклад каждого разработчика.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
🧾 .git-blame-ignore-revs — чтобы blame был полезным

Иногда git blame показывает коммиты с форматированием или рефакторингом, которые не несут смысла. Это можно исключить.

Создай файл:

.git-blame-ignore-revs


Добавь hash-коммиты, которые нужно игнорировать:

a1b2c3d4
e5f6g7h8


Включи настройку:

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


Что это даёт:
• blame показывает реальные изменения логики;
• форматирование не шумит;
• проще искать причины багов.

.git-blame-ignore-revs - чистый blame без мусора.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧠 Git Rev-Parse — как Git понимает ссылки на коммиты

git rev-parse показывает, во что Git реально преобразует ссылки вроде HEAD, веток и тегов. Полезно для скриптов и отладки.

Получить hash текущего коммита:

git rev-parse HEAD


Hash ветки:

git rev-parse main


Проверка, существует ли ссылка:

git rev-parse --verify feature/login


Определить имя текущей ветки:

git rev-parse --abbrev-ref HEAD


Зачем использовать:

* shell-скрипты и CI;
* диагностика сложных кейсов;
* понимание, как Git резолвит ссылки.

rev-parse — взгляд на Git без абстракций.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🛠 Git Worktree Prune — чистим старые рабочие копии

При использовании git worktree иногда остаются неактуальные директории. prune помогает убрать ссылки на удалённые или удалённые worktree.

Проверка списка:

git worktree list


Очистка несуществующих директорий:

git worktree prune


Что делает:

* удаляет записи о недоступных worktree;
* не трогает существующие рабочие каталоги;
* упрощает управление несколькими рабочими копиями.

worktree prune — поддержка порядка при множестве рабочих деревьев.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🧪 Git Rerere — повторное использование решений конфликтов

git rerere сохраняет твои решения конфликтов и автоматически применяет их при повторных конфликтах.

Включение:

git config --global rerere.enabled true


Проверить сохранённые решения:

git rerere status


Очистить базу решений:

git rerere clear


Где полезно:

* частые rebase;
* долгоживущие ветки;
* повторяющиеся конфликты.

rerere — инструмент для тех, кто устал решать одно и то же.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
📊 Git Count-Objects — что происходит внутри .git

git count-objects показывает статистику объектов в репозитории и помогает понять его размер и состояние.

Базовое использование:

git count-objects


Более подробная информация:

git count-objects -v


Что можно увидеть:

* количество loose-объектов;
* размер pack-файлов;
* общий объём данных.

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

* репозиторий резко вырос;
* диагностика после переписывания истории;
* проверка перед git gc.

count-objects — быстрый способ понять, что происходит внутри Git.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🧬 Git Replace — временная подмена коммита без переписывания истории

git replace позволяет подменить один объект Git другим. История физически не меняется, но Git будет показывать её с учётом замены.

Создать замену:

git replace <old_commit> <new_commit>


Посмотреть активные замены:

git replace


Удалить замену:

git replace -d <old_commit>


Что это даёт:

* тестирование альтернативной истории;
* анализ изменений без force push;
* эксперименты с графом коммитов.

Важно:

* замены действуют локально;
* не отправляются в remote по умолчанию;
* это инструмент для продвинутой диагностики.

git replace — вмешательство в отображение истории без её разрушения.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🧠 Git Show-Ref — список всех ссылок в репозитории

git show-ref выводит все ссылки: ветки, теги и другие ref-объекты с их hash.

Базовое использование:

git show-ref


Только ветки:

git show-ref --heads


Только теги:

git show-ref --tags


Проверка существования ветки:

git show-ref --verify refs/heads/feature/login


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

* диагностика «пропавшей» ветки;
* скрипты и CI;
* проверка ref перед операциями.

show-ref — прямой доступ к карте ссылок Git.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Айти не щадит никого 😐

➡️ GitHub Ready | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19
🔐 Git Update-Ref — управление ссылками вручную

git update-ref позволяет напрямую изменить, создать или удалить ref (ветку, тег). Это низкоуровневый инструмент.

Создать ветку:

git update-ref refs/heads/feature/login <hash>


Переместить ветку:

git update-ref refs/heads/main <hash>


Удалить ref:

git update-ref -d refs/heads/old-feature


Особенности:

* не делает merge или проверок;
* напрямую меняет указатели;
* используется в скриптах и внутренних механизмах Git.

update-ref — контроль над ссылками без посредников.

➡️ GitHub Ready | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧪 Git Fsck — проверка целостности репозитория

git fsck (file system check) проверяет объекты и ссылки на целостность. Используется для диагностики повреждений.

Запуск проверки:

git fsck


Полный вывод:

git fsck --full


Что проверяет:

* битые или отсутствующие объекты;
* висячие (dangling) коммиты;
* некорректные ссылки.

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

* подозрение на повреждение .git;
* сбои диска;
* проблемы после ручных операций с историей.

fsck — инструмент диагностики, а не повседневной работы.

➡️ GitHub Ready | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🧱 Git Cat-File — посмотреть объект Git напрямую

git cat-file показывает содержимое объектов: коммиты, деревья, blob. Это уровень ниже обычных команд.

Посмотреть тип объекта:

git cat-file -t <hash>


Посмотреть содержимое:

git cat-file -p <hash>


Размер объекта:

git cat-file -s <hash>


Что можно увидеть:

* структуру коммита;
* дерево файлов;
* содержимое конкретного blob.

cat-file — способ увидеть, как Git хранит данные без абстракций.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🧬 Git Blame — кто и когда изменил строку

git blame показывает автора и коммит для каждой строки файла. Полезно для поиска источника багов.

Базовое использование:

git blame file.js


С указанием конкретного коммита:

git blame HEAD~3 file.js


Игнорирование коммитов форматирования:

git blame --ignore-rev <hash> file.js


Опции:

* -L 10,20 — ограничить строки;
* -p — подробный формат.

Blame помогает понять, кто и зачем изменял код, без ручного просмотра истории.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧭 Git Merge — как использовать --squash для аккуратной истории

git merge --squash объединяет изменения ветки без создания merge-коммита, превращая все коммиты ветки в один.

Пример:

git checkout main
git merge --squash feature/login
git commit -m "feat: add login feature"


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

* изменения из ветки feature/login добавляются в индекс;
* создаётся один коммит с итоговыми правками;
* история ветки feature/login не сохраняется.

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

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

--squash — аккуратность без потери функционала.

➡️ GitHub Ready | #Уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
T-Sync Conf

Инженерные конференции часто выглядят одинаково: с докладами, слайдами, вопросами из зала и ощущение, что половина тебе никак не откликается

T-Sync Conf решает эту проблему через формат. 7 февраля Т-Технологии проведут масштабную конференцию для инженеров, где вместо одного общего маршрута — восемь технических контуров, из которых каждый может собрать свою траекторию: AI, Data, R&D, Security, UX/UI, Productivity, Observability, Platform.

Фокус не на рассказах, а на практике: демо-стенды с AI- и Data- платформами, инженерные диалоги с разбором кейсов, хакатон и публичная сборка сервиса. Плюс отдельные форматы для обсуждения UX/UI инструментов — от интерфейсов до дизайн-систем. Пройдет все на площадке TAU в Москве. Проход бесплатный, но рега обязательна

Ссылка

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🧮 Git Rev-List — список коммитов как инструмент для анализа

git rev-list выводит список commit hash по заданному диапазону. Основа для многих внутренних команд Git.

Базовое использование:

git rev-list HEAD


Количество коммитов в ветке:

git rev-list --count main


Коммиты, которых нет в другой ветке:

git rev-list main ^feature


Диапазон:

git rev-list main..feature


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

* скрипты и CI;
* анализ расхождений веток;
* подсчёт изменений перед релизом.

rev-list — сырой список истории без форматирования.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
👩‍💻 Коллекция готовых запросов для PostgreSQL

Нашёл для вас крутой репозиторий, в котором собрано около сотни готовых SQL запросов для PostgreSQL.

👉 Увидел много полезностей — от получения и модификации данных до ускорения запросов и обслуживания баз данных.


Клик

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🧱 Git Rebase -i — управление историей коммитов вручную

Интерактивный rebase позволяет редактировать, объединять, менять порядок и удалять коммиты.

Запуск:

git rebase -i HEAD~5


В списке доступны действия:

* pick — оставить;
* reword — изменить сообщение;
* edit — изменить содержимое;
* squash — объединить;
* drop — удалить.

Изменить порядок — просто поменять строки местами.

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

* чистка истории перед PR;
* объединение WIP-коммитов;
* исправление структуры изменений.

rebase -i — инструмент контроля качества истории.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🔍 Git Show — быстрый просмотр содержимого коммита

git show отображает изменения, автора, дату и diff выбранного коммита.

Последний коммит:

git show


Конкретный коммит:

git show a1b2c3d


Только изменения без метаданных:

git show --pretty="" --name-only


Показать файл из прошлого коммита:

git show HEAD~2:src/app.js


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

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

git show — точечный доступ к истории без лишних действий.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🧩 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