Гид по технологиям

Основы Git и GitHub: создание репозитория, коммиты, теги и клонирование

6 min read GIT Обновлено 25 Dec 2025
Основы Git и GitHub: создать репозиторий
Основы Git и GitHub: создать репозиторий

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

Интерфейс страницы репозитория GitHub с кнопкой создания

Популярный веб‑сервис GitHub в сочетании с инструментом git — отличный способ не только распространять и демонстрировать проект, но и вести профессиональный контроль версий. В этом руководстве вы научитесь:

  • создавать репозиторий на GitHub;
  • инициализировать локальную копию и делать первый коммит;
  • отправлять изменения на GitHub и помечать релизы тегами;
  • клонировать репозиторий и просматривать историю коммитов;
  • исправлять (amend) и перезаписывать сообщения коммита.

Короткие определения

  • Git — распределённая система контроля версий.
  • Репозиторий — хранилище кода и истории изменений.
  • Коммит — зафиксированное состояние файлов с сообщением.
  • Тег — метка состояния репозитория, обычно для релизов.

Создание репозитория

  1. Войдите на GitHub или зарегистрируйте учётную запись.
  2. В правом верхнем углу нажмите Create New → Repository.
  3. Задайте имя репозитория (например, muo_demo) и при желании описание. Остальные поля можно оставить по умолчанию.
  4. Нажмите 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 и смёржил в основную ветку
  • При релизе добавил тег и описание релиза

Ревьювер

  • Проверил согласованность стиля кода
  • Убедился в отсутствии секретов/паролей
  • Проверил тесты и поведение приложения

Мини‑методология релизов

  1. Создавайте ветку релиза от основной ветки.
  2. В неё сливайте подготовленные PR.
  3. Протестируйте сборку и тесты.
  4. Создайте аннотированный тег (git tag -a vX.Y.Z -m “Описание”).
  5. Отправьте теги: git push –tags.
  6. Создайте 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 и согласовывайте изменения с командой.
  • Не храните секреты в репозитории и применяйте правила защиты веток.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Иконки в приложении «Дом»: настройка
Смарт-дом

Иконки в приложении «Дом»: настройка

Сканирование QR-кодов на iPhone через Пункт управления
Руководство

Сканирование QR-кодов на iPhone через Пункт управления

Как перенести Google Authenticator на новый телефон
Безопасность

Как перенести Google Authenticator на новый телефон

Безопасный вход через Google — советы и чек-лист
Безопасность

Безопасный вход через Google — советы и чек-лист

Как перенести Windows на другой диск — пошагово
Руководство

Как перенести Windows на другой диск — пошагово

Как установить Windows Media Player в Windows 10
Программное обеспечение

Как установить Windows Media Player в Windows 10