29.03.2026

Git и GitHub: нестрашный гайд для начинающих

Если вы только начинаете писать код, то рано или поздно натыкаетесь на стену. Код нужно сохранять, но «проект финальный окончательный 3 апреля правка2.py» — это не метод. А когда в проект заходит другой разработчик или вы сами через месяц, то вспомнить и разобраться что происходит не получается.

В мире Python и других языков программирования уже много лет как есть стандартная почти волшебная палочка под названием Git. Но первое знакомство с ним редко обходится без слез.

В этом материале мы разобрали три главных вопроса, которые встают перед новичком:

Что вообще происходит? Разбираемся с новыми понятиями: репозиторий, коммит, ветка и почему Git, GitHub и GitHub Desktop — это не одно и то же.
Чем пользоваться? Обзор клиентов. Спойлер: для веба консольный учить придется, но на локальной машине можно комфортнее.
—. Где хранить код? Обзор платформ: GitHub, GitLab, Bitbucket, GitVerse.

Если вы пока путаете `push` и `pull` и боитесь сломать все одним неверным движением — этот гайд для вас.

Давайте разбираться с инструментом, без которого не обходится ни один бэкенд разработчик на Python. А если обходится – не светит ему место в крутой ИТ-команде!

Git, Github и другие звери

Итак, Python разработчик обязан регулярно использовать Git. В консоли, в десктопном клиенте или встроенным в IDE интерфейсе. Начнем с основных понятий, а затем выберем удобный клиент для работы с Git.

Что такое Git

Разработка Git — это распределенная система контроля версий.

Важно! Не путать с GitHub. Это программные продукты разного назначения, они не прямые аналоги.

Сохранение истории изменений
У программного продукта всегда есть версии. И каждое стабильное состояние желательно сохранять, чтобы вернуться в него, если расширение функционала или рефакторинг что-то поломали. Git отслеживает и сохраняет историю изменений в коде.

Разработка программного продукта в команде
При работе в команде несколько разработчиков изменяют код одного проекта и часто даже одного файла. Один разработчик правит багу, другой разработал новую фичу, а фичу третьего разработчика отменили. В итоге нужно сделать так, чтобы разработчики не мешали друг другу и итоговая версия содержала все нужные изменения кода.

Синхронизация изменений между распределенными репозиториями
Данные хранятся и используются на удаленных машинах: локальные машины разработчиков, централизованное хранилище кода организации, сервера, на которых развернуты веб-приложения. Git позволяет синхронизировать изменения в коде из разных источников.

Git — самый распространенный инструмент для работы с кодом. Альтернативы ему, конечно, есть. Но де-факто Git — это стандартный инструмент, который должен знать и уметь использовать любой бэкенд-разработчик на Python. 10 лет назад Mercurial еще составлял конкуренцию, но не сейчас. Приняли, смирились,используем.

Аналоги Git:
— Mercurial
— Bazaar
— Apache Subversions

Ветка, коммит, репозиторий — базовые концепты

Ветка (branch) — это отдельная история изменений (коммитов) в рамках одного репозитория. Git поощряет создание отдельных веток для каждой решаемой задачи, благодаря чему и достигается эффективная параллельная работа — каждый разработчик может работать со своей историей и не бояться, что изменения в чужом коде повлияют на его работу.

Примеры:
👉 main или master — основная ветка, код из которой разворачивается в проде («боевой» версии веб-приложения на сервере).
👉new-payment-system — отдельная ветка, которая заведена под разработку отдельной фичи — новой платежной системы. В конце разработки будет влита в main-ветку

Коммит (commit) — зафиксированное состояние репозитория.
У коммита есть метаданные: идентификатор, имя автора, дата создания, комментарий.

Как работать с коммитами:
— Делайте коммиты атомарными. Один коммит = одна новая фича или одна правка. Это позволит в случае необходимости точечно откатить изменения.
— Давайте коммитам понятные названия
— Коммит всегда фиксирует работающий код. Если один коммит не работает без следующего -- объедините их.

Примеры коммитов:
— Fix bug #1338. ConnectionError;
— Добавлена платежная система Prodamus;
— Rename file `tg.py` to `tg_bot.py`.

Репозиторий (repo) — хранилище, содержащее все файлы и историю изменений проекта.

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

Примеры репозиториев:
— origin — локальный репозиторий на машине разработчика
— remote — удаленный репозиторий, например, в хранилище Github

В репозитории не рекомендуется хранить:
— чувствительные данные (пароли, токены)
— большие файлы
— служебные файлы и кэши IDE (например, файлы `pyc`, `.idea`, `__pycache__`, `DS_Store`, каталог `.vscode`)

Для управления тем, изменения в каких файлах и директориях нужно отслеживать и сохранять в истории, используйте файл `.gitignore`.

Что умеет Git

Слияние (merge) — перенос изменений из одной ветки репозитория в другую.

Пример: Разработчик Иван добавил в своей ветке код, которые позволяет оплачивать заказ Долями. Нужно влить изменения в main-ветку, чтобы фича появилась в продакшн версии сайте.

Клонирование (Clone) — копирование кода вместе со всей его историей, т.е. копирование репозитория. Клонированный репозиторий будет привязан к родительскому репозиторию.

Пример: вы клонировали репозиторий партнера по проекту с GitHub, чтобы доработать и отладить свой блок работ на локальной машине. В Git клиенте вы видите, что в качестве `remote` указан исходный репозиторий на GitHub. Как будете готовы, вы отправите свой код в удаленный репозиторий и ваши сокомандники увидят ваш код.

Пул (Pull) — получение последних изменений с удаленного сервера репозитория.

Пример: пока вы работали над своим блоком работ, ваш коллега уже внес изменения в модели данных вашего общего проекта на GitHub. Вы хотите ими воспользоваться в своем коде. Выполните операцию pull и на вашей локальной машине появится самая свежая версия кода из удаленного репозитория.

Пуш (Push) — отправка всех неотправленных ранее коммитов в удаленный репозиторий.

Пример: вы закончили свой блок работ, закоммитили все изменения. Но ваши коллеги пока не видят ваш код. Пушните свои изменения в удаленный репозиторий и они смогут подтянуть эти изменения к себе и использовать для дальнейшей разработки вашего общего проекта.

Клиенты для работы с Git

Для работы с Git можно использовать как интерфейс командной строки - она же консоль, так и встроенные в IDE и графические приложения.

Консольный Git незаменим на сервере, но в локальной разработке сложные операции, такие как слияния веток кода, удобнее выполнять в графическом интерфейсе.
Графический Git
Консольный Git
Консольный Git — обязательный инструмент для веб-разработчика. На сервере редко можно установить графический клиент и работа с репозиторием возможна только из командной строки.

Плюсы консольного Git:
— Доступен на любой ОС
— Полная версия доступна бесплатно как для некоммерческого, так и коммерческого использования
— Незаменим на сервере

❗️Возможные проблемы:
— Сложно вычитать изменения в коде или слить две ветки с кодом
— Могут возникать проблемы с путями в Windows из-за Unicode кодировки

📌Памятка по командам Git:

git config --global user.name "Devman" – Настройка, авторизация
git config --global user.email support@dvmn.org
`git init` — создание пустого репозитория
git clone <url> — клонирование удаленного репозитория
git status — просмотр текущих изменений.
`git add` — добавить файл в репозиторий
`git commit` — зафиксировать изменения в коде, создать новый коммит в локальном репозитории.
`git push` — отправка изменений в удаленный репозиторий.
`git pull` — получение изменений из удаленного репозитория.
`git log` — просмотр истории изменений.

Разберем основные клиенты для работы с Git с графическим интерфейсом:

GitHub Desktop
— Официальный клиент от Microsoft и GitHub;
— Полная версия доступна бесплатно как для некоммерческого, так и коммерческого использования;
— Работает под Windows и MacOS. Версия для Linux официально не поддерживается;
— Код проекта открыт и доступен для доработки.

GitHub Desktop довольно минималистичный и предоставляет только базовый набор инструментов для работы с удаленными репозиториями. Довольно сложный интерфейс, отсутствует визуализация истории веток.

Sourcetree
— Разработан Atlassian (разработчики Jira, Confluence и BitBucket);
— Бесплатно, но код закрыт а отличие от GitHub Desktop;
— Может работать как с git репозиториями, так и репозиториями Mercurial;
— Доступен для Windows и MacOS.

У Sourcetree простой интерфейс, но есть подробная визуализация истории изменения веток. Вместе с Jira и BitBucket образует единую экосистему разработки программного обеспечения от одного производителя.

Sublime Merge
— От разработчиков Sublime Text;
— Есть бесплатная и платная лицензии;
— Может работать с любыми платформами для хранения и управления репозиториями: GitHub, GitLab, BitBucket;
— Доступен на Windows, macOS и Linux.

Sublime Merge отличается отличным визуалом для вычитки изменений и просмотра истории изменения веток кода. Возможна настройка светлой и темной темы. Приложение достаточно легковесное. Для начинающих полезно видеть команды в строке, которые выполняются после нажатия кнопок в интерфейсе.

GitKraken
— От разработчиков популярного расширения GitLence для Visual Studio Code
— Бесплатно доступна только ограниченная версия
— Может работать с любым хранилищем репозиториев GitHub, Gitlab, BitBucket
— Доступен на Windows, macOS и Linux

В GitKraken большое внимание уделяется дизайну и визуализации. Возможна интеграция с Jira и Trello. Есть встроенная командная строка для работы с Git. Можно одновременно работать из-под нескольких аккаунтов, создавать команды разработчиков. Визуализация истории веток красивая, яркая, но абсолютно нечитаемая.

Для освоения навыков работы с Git читайте официальный гайд и закрепите полученные знания на практике в нашем мини-курсе «Git и GitHub».

Платформы для управления репозиториями

Мы уже разобрали систему контроля версий Git и графические клиенты. Теперь расскажем о платформах для управления репозиториями.

Одна из ключевых особенностей Git — это распределенная система. Т.е. код хранится и на локальной машине разработчика, и на сервере где работает сайт, и еще в каком-то удаленном централизованном хранилище, например, в рамках компании.

К централизованному хранилищу предъявляются требования по доступности и надежности.

В качестве удаленного хранилища репозиториев может использоваться как веб-сервис, так и развернутая на своих серверах система. Познакомимся с самыми популярными платформами.

GitHub

GitHub — это крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Кроме размещения кода, участники могут общаться, комментировать правки друг друга, а также следить за новостями знакомых. Поэтому GitHub называют «соцсетью для разработчиков».

— Доступны публичные и приватные репозитории.
— Есть инструмент для отслеживания ошибок и редактор с подсветкой кода прямо на сайте.
— Место, где размещают свой код самые известные библиотеки и языки программирования с открытым исходным кодом: Python, Django, FastAPI, Requests, NumPy.

Платформа бесплатная для проектов с открытым исходным кодом.

❗️В настоящее время GitHub принадлежит компании Microsoft. Доступ к платформе уже ограничен из Крыма и новых регионов РФ. Надеемся, что санкции не отрежут полностью доступ к столь важному для российского IT-сообщества сервису.

GitLab

— имеет близкий к GitHub интерфейс,
— собственную wiki-систему,
— issue-трекер,
— возможность назначить пользователям роли в проекте,
— встроенные возможности непрерывной интеграции и развертывания (CI/CD), — — — инструменты для постановки и отслеживания задач,
— интеграцию с Google Cloud.

Почти полностью повторяет функционал GitHub.

В настоящее время — это один из самых распространенных вариантов для компаний в РФ, которые могут развернуть GitLab на своих серверах, благодаря лицензии, позволяющей использовать систему для работы с проприетарным (коммерческим) кодом.

BitBucket

Платформа от Atlassian, которой также принадлежат популярные в IT системы Jira, Trello и Confluence. Сервис интегрирован с этими и другими проектами — например, инструментами развертывания приложений AWS CodeDeploy и Deploy to Azure, сервисом для поиска ошибок Instabug, средами разработки Visual Studio и Unity и прочими.

🛑Платформа ориентирована на большие компании. Но из-за санкций Atlassian со всеми продуктами официально покинул РФ.

GitVerse

Платформа анонсирована СберТехом в 2023 году. Это российская разработка и она выглядит перспективно на фоне массового ухода с рынка РФ зарубежных веб-сервисов.

Заявленная стратегическая цель — создать некое «единое окно», среду, где можно вести весь процесс разработки: от проектирования архитектуры до деплоя. По задумке эта среда будет пронизана ИИ, автоматизирующим рутинные задачи. Таким образом разработчик сможет достичь максимальной эффективности и сосредоточиться на решении сложных проблем.

Платформа активно развивается и уже доступна для размещения личных репозиториев. Все еще довольно редкая.

В уроках Девман учебные проекты обязательно оформляются в публичные репозитории на GitHub. Поскольку каждый учебный проект проверяется опытным разработчиком и затем дорабатывается, то по итогам обучения наши ученики получают достойное портфолио проектов с чистым кодом.

GitHub наверняка пользовался каждый начинающий разработчик. Внутри Девмана используем GitLab, развернутый на нашем сервере. В РФ активно внедряют платформу GitVerse.

В мире Python-разработки Git давно стал не просто рекомендацией, а стандартом де-факто. Без него невозможно представить себе ни одного серьезного проекта, будь то веб-приложение или библиотека с открытым исходным кодом. Требования по владению Git есть в каждой вакансии.

Так что не откладывайте. Начните с малого: установите клиент, сделайте первый коммит в учебном проекте, попробуйте откатить изменения.

Освоить Git — значит перестать быть любителем, который хранит код в папках с датами. И стать профессиональным разработчиком, для которого открыта дорога в любую команду и любой проект. Выбор за вами, но теперь вы точно знаете, с какой стороны подойти к инструменту.
Хотите попробовать курсы бесплатно?
У нас есть курсы Python и программы для учеников с разным опытом — от нуля до сильного джуна.

С нами можно:
— впервые начать изучать язык,
— подтянуть конкретные темы,
— вырасти до мидла,
— трудоустроиться в ближайшие пару месяцев.

Если хотите выбрать тот трек, который поможет вам сейчас в вашей конкретной точке роста, свяжитесь с менеджером.
Даю согласие на обработку персональных данных