В чем разница между системой контроля версий Git и платформой GitHub

«В чем разница между системой контроля версий Git и платформой GitHub» — вопрос из категории git, который задают на 22% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Git и GitHub — это связанные, но разные инструменты. Git — это сама технология, а GitHub — это сервис, который ее использует.

Git

  • Что это: Распределенная система контроля версий (VCS).
  • Где работает: Локально на компьютере разработчика.
  • Назначение: Отслеживание изменений в файлах (история коммитов), создание веток для параллельной разработки, слияние изменений. Это инструмент командной строки (git commit, git branch, git merge).

GitHub

  • Что это: Веб-платформа для хостинга Git-репозиториев и совместной разработки.
  • Где работает: В облаке (веб-сервис).
  • Назначение: Предоставляет централизованное место для хранения кода, а также инструменты для совместной работы, которых нет в самом Git:
    • Pull Requests: Механизм для предложения и обсуждения изменений перед их слиянием.
    • Issues: Система для отслеживания задач и ошибок.
    • Actions: Инструмент для автоматизации CI/CD (сборка, тестирование, развертывание).
    • Code review: Веб-интерфейс для удобного просмотра и комментирования кода.

Практический пример взаимодействия:

# 1. Работаем с Git локально
# Инициализируем репозиторий в папке проекта
git init
# Добавляем файл и делаем коммит
git add . 
git commit -m "Initial commit"

# 2. Подключаем удаленный репозиторий на GitHub
git remote add origin https://github.com/user/repo.git

# 3. Отправляем локальные изменения на GitHub
git push -u origin main

Аналогия: Если Git — это движок автомобиля, то GitHub — это сам автомобиль с кузовом, приборной панелью и навигационной системой, который использует этот движок для работы.