Git и GitHub с нуля
Перестать терять работу: снимки, отправка наружу и уверенность, что вчерашнюю версию можно вернуть.
Перестать терять работу. Четыре понятия, две команды в день и уверенность, что вчерашнюю версию можно вернуть.
Тот раздел, который обычно пропускают, а потом теряют работу. Читается за пять минут.
Представьте папку с финмоделью. Вы правите её каждый день. Git это фотоаппарат: по вашей команде он делает снимок всей папки и подписывает, что именно вы меняли. Снимки лежат стопкой, любой можно вернуть. GitHub это общий сейф в интернете, куда вы относите копию стопки: чтобы не потерять при поломке ноутбука и чтобы коллега мог взять оттуда свежее.
Что такое коммит
Коммит и есть такой снимок: состояние файлов на конкретный момент плюс подпись, что и зачем поменяли. Это фиксация изменений с историей, копия всей папки заново тут не делается. Каждый коммит знает, какой был до него, поэтому получается цепочка, по которой видно, как файл дошёл до нынешнего вида.
Что такое GitHub и зачем он нужен
Git работает только у вас на компьютере. Пока снимки не отправлены наружу, они существуют в одном экземпляре: сломался ноутбук, пропала работа. GitHub хранит копию вашей истории и раздаёт её тем, кому вы разрешили.
Зафиксировать текущее состояние с подписью. Локально, никто ещё не видит.
Отправить свои коммиты на GitHub. Теперь работа существует не только у вас.
Забрать свежее, что запушили другие. Делается перед работой.
Приватный и публичный репозиторий. Публичный видит весь интернет и поисковики. Приватный только приглашённые. Всё, что касается заказчиков и внутренней кухни, живёт только в приватных. Проверять это надо до первого пуша.
Наизусть git учить не нужно: говорите «закоммить и запушь», модель сделает. Два момента
проверяйте сами. Первый: git status перед коммитом, чтобы случайно не утащить лишние
файлы. Второй: после пуша откройте репозиторий на GitHub и убедитесь, что изменения там.
Работаете параллельно в двух сессиях или на двух машинах: перед пушем всегда
git pull --rebase, иначе получите отказ и соблазн решить его силой. В общей ветке
выручает именно rebase: принудительный пуш затирает работу коллег. И .gitignore
заполняется до первого коммита: история помнит всё, что в неё попало, удаление файла
следующим коммитом ничего не стирает.
Поставить git и GitHub CLI
Установка.
: git вы, скорее всего, уже поставили вместе с Claude Code. Тогда нужна только вторая команда.
winget install --id Git.Git winget install --id GitHub.cli
После установки закройте PowerShell и откройте заново, иначе команды не найдутся.
:
brew install git gh
Git на macOS часто уже стоит вместе с инструментами разработчика. Ничего страшного: brew
просто скажет, что он на месте. Нет самого brew: поставьте Homebrew с brew.sh, это одна
команда с их главной страницы.
Проверка:
git --version gh --version
Вы должны увидеть по номеру версии от каждой команды, без ошибок.
Завести GitHub и подключить его.
Регистрация на github.com/join: почта, пароль (от 15 символов, либо от 8 с цифрой
и строчной буквой), username латиницей, страна.
gh auth login
Команда задаст четыре вопроса подряд. Отвечайте так: аккаунт GitHub.com, протокол HTTPS,
на «Authenticate Git with your GitHub credentials» отвечайте Y (иначе git будет спрашивать
пароль на каждое действие), способ входа Login with a web browser. Скопируйте показанный
код, нажмите Enter и вставьте код в открывшемся окне браузера.
Выбор делается стрелками вверх и вниз, подтверждение Enter. Мышка в этом окне не работает, это нормально.
Вы должны увидеть «Logged in as ваш-username». Проверить отдельно: gh auth status.
Завести репозиторий под свою работу.
cd ~/work/claude/moy-proekt git init gh repo create --private --source=. --remote=origin
Флаг --private здесь не украшение. Публичный репозиторий индексируется поисковиками
в течение часов, и вернуть это назад нельзя.
Дальше обычный день выглядит так:
git add -A git commit -m "что поменял" git push
Первую строку читайте глазами: git add -A берёт всё, включая то, что вы туда класть
не собирались.
Работа лежит в приватном репозитории, коммит и push не пугают, .gitignore заполнен
до первого коммита.
Что сделать
Результат: Рабочий проект в приватном репозитории с заполненным .gitignore.