GitHub Ready | Git
6.16K subscribers
641 photos
74 videos
1 file
547 links
По всем вопросам: @AdilNow
Download Telegram
🧠 Git Config — управление поведением Git

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.

➡️ GitHub Ready | #урок
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4🔥2
🔄 Git Pull — fetch + merge или fetch + rebase

git pull обновляет вашу ветку с удалённого репозитория, но стратегия слияния влияет на историю.

По умолчанию:

git pull


• делает fetch + merge;
• создаёт merge-коммит, если есть новые изменения.

Чтобы сохранить линейную историю:

git pull --rebase


• переносит ваши коммиты поверх удалённых;
• история остаётся чистой.

Можно настроить по умолчанию:

git config --global pull.rebase true


💡 Понимание стратегии pull помогает избежать «грязных» merge-коммитов и конфликтов в команде.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🏷 Git Tag — фиксация релизов и важных состояний

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.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
📂 Git Archive — экспорт проекта без .git

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

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
🧪 Git Show — просмотр одного коммита без шума

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 — минимализм для работы с историей.

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

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 — ускорение работы без плагинов и магии.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🌿 Git Clean + Dry Run — безопасная очистка проекта

Иногда в рабочей директории скапливаются временные файлы, логи и артефакты сборки. git clean помогает убрать их, но безопаснее сначала проверить, что удалится.

Проверка без удаления:

git clean -n


Удаление файлов:

git clean -f


Удаление файлов и директорий:

git clean -fd


Игнорирование .gitignore:

git clean -fx


💡 Использование -n перед -f спасает от случайной потери нужных файлов.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🔁 Git Fetch — обновление без вмешательства в код

git fetch загружает изменения из удалённого репозитория, но не трогает рабочую директорию и текущую ветку.

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

git fetch


Что происходит:
• обновляются ссылки origin/*;
• локальный код не меняется;
• можно спокойно анализировать изменения.

Сравнение перед слиянием:

git diff main origin/main


Обновление всех remote:

git fetch --all


fetch — контроль и обзор перед любыми изменениями.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧯 Git Revert — безопасный откат в публичных ветках

git revert отменяет изменения через новый коммит, не переписывая историю. Это ключевое отличие от reset.

Откат одного коммита:

git revert <hash>


Откат диапазона:

git revert <hash1>..<hash2>


Если возник конфликт:

git revert --continue


Почему это важно:
• история не ломается;
• безопасно для main / develop;
• подходит для командной работы.

revert — правильный способ отмены, когда коммиты уже в общем доступе.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Как Git хранит твои данные: пошаговая иллюстрация 👩‍💻

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
🧠 Git GC — что это и зачем он нужен

git gc (garbage collection) — команда для очистки и оптимизации репозитория. Удаляет недостижимые объекты и сжимает данные.

Ручной запуск:

git gc


Более агрессивная очистка:

git gc --aggressive


Что делает:
• уменьшает размер репозитория;
• ускоряет git log, status, diff;
• чистит старые объекты после rebase/reset.

Важно:
• обычно Git запускает GC сам;
• --aggressive — редко и осознанно;
• не влияет на историю коммитов.

git gc — техобслуживание, а не средство «починки» Git.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
🪜 Git Upstream — связь локальной ветки с удалённой

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.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
4
🧰 Git Rerere — автоматическое запоминание конфликтов

git rerere (reuse recorded resolution) запоминает, как ты решал конфликты, и автоматически применяет это решение в будущем.

Включение:

git config --global rerere.enabled true


Как работает:
• при конфликте ты решаешь его вручную;
• Git сохраняет решение;
• при повторном конфликте — применяет его сам.

Проверка статуса:

git rerere status


Очистка сохранённых решений:

git rerere clear


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

rerere — экономия времени там, где конфликты неизбежны.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🦞 Clawd → Moltbot → OpenClaw

100k+ GitHub звезд. 2M посещений за неделю + запущенная соцсеть Moltbook для ИИ-агентов. Кажется, это название закрепилось надолго.

Твой помощник. Твоя машина. Твои правила. Уже успели попробовать?
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
🧱 Git Sparse-Checkout — работать только с частью репозитория

sparse-checkout позволяет загружать и держать в рабочей директории не весь репозиторий, а только нужные каталоги.

Включение:

git sparse-checkout init


Указать нужные директории:

git sparse-checkout set src docs


Отключение:

git sparse-checkout disable


Когда полезно:
• монорепозитории;
• большие проекты;
• ограниченные ресурсы.

sparse-checkout — контроль объёма без костылей и дополнительных clone.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧪 Git Commit –amend — исправление последнего коммита

git commit --amend позволяет изменить последний коммит без создания нового.

Типичные случаи:
• забыли добавить файл;
• опечатка в сообщении;
• мелкая правка кода.

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

git add forgotten_file.js
git commit --amend


Только изменить сообщение:

git commit --amend -m "fix: correct auth flow"


Важно:
• переписывает hash коммита;
• не использовать для уже запушенных коммитов;
• идеально перед push или PR.

--amend — аккуратность вместо мусора в истории.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🧭 Git Describe — понятные версии вместо hash

git describe показывает текущий коммит через ближайший тег. Удобно для отладки, логов и версий сборок.

Базово:

git describe


Что вернёт:

v1.2.0-5-g9f3a1c2


Где:
• v1.2.0 — ближайший тег;
• 5 — количество коммитов после тега;
• g9f3a1c2 — hash коммита.

С учётом всех тегов:

git describe --tags


Использование:
• версии в CI/CD;
• отладка сборок;
• понимание «где мы находимся» без hash.

git describe — читаемый идентификатор состояния проекта.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3
📐 Git Range-diff — сравнение двух серий коммитов

git range-diff показывает разницу между наборами коммитов, а не файлами. Полезно после rebase, когда нужно понять, что реально изменилось.

Базовый пример:

git range-diff main..feature main..feature-rebased


Что показывает:
• какие коммиты изменились;
• какие были удалены или добавлены;
• как поменялось содержимое коммитов.

Типичный сценарий:
• сделал rebase;
• хочешь проверить, не потерял ли правки;
• сравниваешь старую и новую версию ветки.

Важно:
• работает на уровне истории;
• незаменим при код-ревью после rebase;
• читается проще, чем log + diff.

range-diff — контроль истории, а не файлов.

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

git notes позволяет добавлять заметки к коммитам, не меняя их hash и историю.

Добавить заметку:

git notes add <hash>


Просмотр заметки:

git notes show <hash>


Удаление:

git notes remove <hash>


Важно:

* заметки хранятся отдельно от коммитов;
* по умолчанию не пушатся;
* для синхронизации:

git push origin refs/notes/*


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

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

git notes — контекст без переписывания истории.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🔄 Git Merge — стратегии слияния веток

При слиянии веток Git использует разные стратегии, и их выбор влияет на историю.

Основные стратегии:

1. recursive (по умолчанию)
* подходит для большинства случаев;
* умеет решать конфликты при слиянии двух веток с общим предком.

2. ours
сохраняет изменения текущей ветки;
игнорирует изменения сливаемой ветки:

git merge -s ours feature


3. octopus
для слияния более двух веток одновременно;
конфликты не решает, только простые случаи.

Советы:
чаще всего хватает стандартного recursive;
ours — для отмены чужих изменений при слиянии;
octopus — при массовом объединении веток для релиза.

Стратегия merge — инструмент контроля истории, а не магия.

➡️ GitHub Ready | #урок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1