Основы Git и GitHub: создание репозитория, коммиты, теги и клонирование
Создайте репозиторий на GitHub, инициализируйте локальную папку, закоммитьте файлы и отправьте их на удалённый сервер. Теги отмечают релизы. Можно клонировать репозиторий, просматривать историю и исправлять сообщения коммитов. В статье — пошаговые команды, рекомендации по типичным ошибкам и чек-листы для ролей.

Популярный веб‑сервис GitHub в сочетании с инструментом git — отличный способ не только распространять и демонстрировать проект, но и вести профессиональный контроль версий. В этом руководстве вы научитесь:
- создавать репозиторий на GitHub;
- инициализировать локальную копию и делать первый коммит;
- отправлять изменения на GitHub и помечать релизы тегами;
- клонировать репозиторий и просматривать историю коммитов;
- исправлять (amend) и перезаписывать сообщения коммита.
Короткие определения
- Git — распределённая система контроля версий.
- Репозиторий — хранилище кода и истории изменений.
- Коммит — зафиксированное состояние файлов с сообщением.
- Тег — метка состояния репозитория, обычно для релизов.
Создание репозитория
- Войдите на GitHub или зарегистрируйте учётную запись.
- В правом верхнем углу нажмите Create New → Repository.
- Задайте имя репозитория (например, muo_demo) и при желании описание. Остальные поля можно оставить по умолчанию.
- Нажмите Create new Repository. Вы увидите пустую страницу репозитория с подсказками по дальнейшим действиям.
Важно: современные репозитории по умолчанию могут использовать ветку main вместо master. Проверяйте, какая ветка установлена в новом репозитории.
Инициализация локального репозитория
На локальной машине создайте папку, добавьте README и временный файл. В терминале выполните:
mkdir myrepo
cd myrepo
echo "# My Test Repository" > Readme.md
echo "A temporary file" > temp.txtФайл Readme.md отображается на странице репозитория на GitHub и служит вводной страницей проекта. Расширение .md означает Markdown.
Инициализируйте git и укажите удалённый репозиторий origin:
git init
git remote add origin https://github.com/<ваш-логин>/muo_demo.gitЗамените <ваш-логин> на своё имя пользователя GitHub и muo_demo на имя вашего репозитория. Пример:
git remote add origin https://github.com/johndoe/test_repo.gitПервый коммит
Добавьте файлы в индекс, зафиксируйте их и отправьте на GitHub:
git add Readme.md temp.txt
git commit -m "My first commit"
git push -u origin masterЕсли в вашем репозитории основная ветка называется main, используйте git push -u origin main.
После успешной отправки обновите страницу репозитория — вы увидите файлы и содержимое Readme.md.
Длинные сообщения коммита
Если вам нужно многострочное сообщение коммита, подготовьте текстовый файл с содержимым сообщения и выполните:
git commit --file=/path/to/commit.txtКоманда использует содержимое файла вместо строки, передаваемой через -m.
Удаление файлов
Чтобы удалить файл и зафиксировать удаление:
git rm temp.txt
git commit -m "Deleting temp file"
git push -u origin masterПосле push файл пропадёт из удалённого репозитория.
Тегирование релизов
Когда вы хотите пометить стабильную версию проекта, используйте теги. Пример создания тега и отправки тегов на сервер:
git tag 1.0.0
git push --tagsПосле обновления страницы репозитория в браузере вы увидите релиз с возможностью скачать архив в формате TAR.GZ со всем проектом в момент тега.
Клонирование репозитория
Чтобы скачать репозиторий и начать работу с нуля:
git clone https://github.com/<ваш-логин>/muo_demo.git myrepo
cd myrepo
git initПервую строку можно выполнить без указания myrepo — тогда папка получит имя репозитория. Часто git init после клонирования не требуется, потому что git clone уже создаёт локальную папку с инициализацией и связью с origin. Однако в некоторых сценариях (например, когда вы хотите заново инициализировать репозиторий в нестандартной среде) git init может быть полезен.
Просмотр истории коммитов
Команда git log показывает историю. Чтобы вывести последние три коммита, используйте:
git log -n 3Альтернативы: git log –oneline для компактного формата или gitk для графического интерфейса, если установлен.
Изменение сообщения последнего коммита
Если нужно исправить сообщение уже сделанного коммита, выполните:
git commit --amendЭта команда откроет ваш редактор по умолчанию с предыдущим сообщением. Отредактируйте и сохраните. Пример для nano: Ctrl+X, затем Y и Enter.
Если вы уже отправили коммит на удалённый репозиторий и хотите заменить его, выполните форсированный push:
git push --force originВажно: git push –force переписывает историю на удалённом сервере. Делайте это только если вы понимаете последствия и согласовали действие с командой.
Когда это не работает
Важно: частые причины ошибок и как их решать
- Ошибка аутентификации при push: проверьте логин/пароль, токен доступа (PAT) или 2FA. GitHub больше не принимает пароль для HTTPS; используйте персональные токены или SSH‑ключи.
- Отказ в правах при push: проверьте, есть ли у вас права записи в репозиторий (collaborator, member, owner).
- Конфликты при слиянии: выполните git pull –rebase или решите конфликты вручную, затем git add и git rebase –continue.
- force push вызывает потерю истории у других участников: предупредите команду и используйте git push –force-with-lease вместо обычного –force.
Альтернативные подходы
- GitHub Desktop — GUI для пользователей, которые предпочитают не работать в терминале.
- SSH‑доступ вместо HTTPS — безопаснее и удобнее при частых push/pull. Настройка: создайте ключ ssh-keygen, добавьте публичный ключ в GitHub.
- CI/CD: автоматическая сборка и тесты при push или при создании релиза.
Практическая шпаргалка команд (Cheat sheet)
# Создать локальную папку и README
mkdir myrepo
cd myrepo
echo "# Project" > Readme.md
# Инициализировать git и связать с удалённым
git init
git remote add origin https://github.com/username/repo.git
# Добавить и закоммитить
git add .
git commit -m "Описание изменений"
# Отправить на удалённый (master или main)
git push -u origin master
# или
git push -u origin main
# Удаление файла
git rm path/to/file
git commit -m "Удалил файл"
# Тег
git tag v1.0.0
git push --tags
# Клонировать
git clone https://github.com/username/repo.git
# Лог
git log --oneline
# Исправить последний коммит
git commit --amend
# Перезаписать удалённую ветку (только по согласованию)
git push --force-with-lease origin branchЧек-лист по ролям
Разработчик
- Создал локальную ветку feature/*
- Выполнил git add и git commit с понятными сообщениями
- Протестировал изменения локально
- Сделал push и открыл Pull Request
Мейнтейнер
- Проверил CI
- Просмотрел историю и diffs
- Принял PR и смёржил в основную ветку
- При релизе добавил тег и описание релиза
Ревьювер
- Проверил согласованность стиля кода
- Убедился в отсутствии секретов/паролей
- Проверил тесты и поведение приложения
Мини‑методология релизов
- Создавайте ветку релиза от основной ветки.
- В неё сливайте подготовленные PR.
- Протестируйте сборку и тесты.
- Создайте аннотированный тег (git tag -a vX.Y.Z -m “Описание”).
- Отправьте теги: git push –tags.
- Создайте Release в веб‑интерфейсе, добавив заметки к релизу.
Примеры ошибок и решения (Edge cases)
- Проблема: после git clone при попытке push нельзя отправить изменения. Решение: выполните git remote -v, убедитесь, что origin указан и у вас есть права. При необходимости создайте pull request.
- Проблема: потеря коммитов после аменд и push –force. Решение: восстановление возможно через git reflog до момента удаления, если локальная копия содержит историю.
Критерии приёмки
- Репозиторий открыт на GitHub и доступен по URL.
- Readme.md отображается корректно.
- Первый коммит выполнен и виден в истории.
- Тег релиза присутствует и соответствует версиям.
- Push/Pull выполняются без ошибок аутентификации для участников команды.
Глоссарий
- Commit — зафиксированное состояние файлов с сообщением.
- Remote — удалённый репозиторий (обычно origin).
- Tag — статичная метка на коммите, используемая для релизов.
- Branch — линия разработки (master/main, feature/*).
Краткое руководство по безопасности
- Не храните секреты в репозитории. Используйте секреты GitHub Actions или внешние менеджеры секретов.
- Для автоматического доступа предпочитайте SSH‑ключи или персональные токены (PAT) с минимальными правами.
- Ограничьте доступ к веткам через правила защиты веток (branch protection).
Резюме
Вы научились создавать репозиторий на GitHub, инициализировать локальную копию, делать коммиты, удалять файлы, помечать релизы тегами, клонировать репозиторий и исправлять сообщения коммитов. Для повседневной работы используйте шпаргалку команд, следуйте чек‑листам по ролям и избегайте force‑push без согласования.
Если хотите продолжить, изучите продвинутые команды git: rebase, cherry‑pick, bisect, worktree и интеграцию CI/CD.
Сводка
- Создайте репозиторий на GitHub и свяжите его с локальной папкой.
- Делайте маленькие осмысленные коммиты и подписывайте релизы тегами.
- Используйте git push –force-with-lease вместо –force и согласовывайте изменения с командой.
- Не храните секреты в репозитории и применяйте правила защиты веток.
Похожие материалы
Иконки в приложении «Дом»: настройка
Сканирование QR-кодов на iPhone через Пункт управления
Как перенести Google Authenticator на новый телефон
Безопасный вход через Google — советы и чек-лист
Как перенести Windows на другой диск — пошагово