Перейти к основному контенту

Учебник по GitHub и Git для начинающих

Учебник для новичков, демонстрирующий, как работает контроль версий Git и почему он важен для проектов в области науки о данных.
Обновлено 22 июл. 2026 г.  · 9 мин читать

Изучить с помощью AI

Открыть в ChatGPTОткрыть в ClaudeОткрыть в Perplexity

Изображение автора

Что такое Git?

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

Как работает Git?

Git хранит ваши файлы и историю их изменений в локальном репозитории. Каждый раз, когда вы сохраняете внесённые изменения, Git создаёт коммит. Коммит — это снимок текущих файлов. Эти коммиты связаны друг с другом, образуя граф истории разработки, как показано ниже. Это позволяет откатываться к предыдущему коммиту, сравнивать изменения и просматривать прогресс проекта разработки - Azure DevOps. Коммиты идентифицируются уникальным хешем, который используется для сравнения и отката сделанных изменений.  

Граф истории разработки

Граф истории разработки

Ветки

Ветки — это копии исходного кода, которые работают параллельно с основной версией. Чтобы сохранить внесённые изменения, слейте ветку с основной версией. Эта возможность способствует бесконфликтной командной работе. У каждого разработчика есть своя задача, и, используя ветки, они могут работать над новой функциональностью без вмешательства коллег. Когда задача завершена, вы можете объединить новые функции с основной версией (master-веткой). Если вы хотите узнать, как клонировать ветку, ознакомьтесь с руководством Git Clone Branch.

Добавление новой функции в репозиторий
Добавление новой функции в репозиторий 


Коммиты

В Git у файлов три состояния: modified (изменён), staged (подготовлен) и committed (зафиксирован). Когда вы вносите изменения в файл, они сохраняются в локальном каталоге и не входят в историю разработки Git. Чтобы создать коммит, необходимо сначала подготовить изменённые файлы. В исходной области (staging area) можно добавлять или убирать изменения, а затем оформить их в виде коммита с сообщением, описывающим изменения.  

Три состояния файлов в Git
Три состояния файлов в Git

Каковы преимущества Git?

  • Отслеживание изменений: позволяет разработчикам просматривать историю изменений. История разработки упрощает поиск и исправление ошибок.
  • Интеграция с IDE: благодаря популярности, интеграция Git доступна во всех средах разработки, например в VSCode и JupyterLab.
  • Совместная работа в команде: команда разработчиков может видеть свой прогресс, а с помощью веток — работать над задачами индивидуально и сливать изменения с основной версией. Pull request'ы, разрешение конфликтов слияния и code review способствуют командной работе. 
  • Распределённый VCS: в распределённой системе нет централизованного хранилища файлов. Для одного и того же проекта существуют несколько резервных копий. Такой подход позволяет разработчикам работать офлайн и фиксировать изменения. 

Git для проектов по науке о данных

Git обеспечивает контроль версий для скриптов, метрик, данных и моделей. Используя расширение Git git-lfs, вы можете хранить и версионировать большие наборы данных и модели машинного обучения. В типичном проекте по науке о данных у вас есть блокнот Jupyter, датасет, модель, метаданные и метрики модели. Метаданные включают файлы с информацией о модели машинного обучения, признаках, параметрах модели и файлы автоматизации. Всё это необходимо для мониторинга прогресса AI-приложений и решения проблем. 

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

Git для проекта по науке о данных
Git для проекта по науке о данных 

Совместная работа с GitHub

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

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

Портфолио

Большинство технических рекрутеров попросят показать портфолио проектов или профиль на GitHub. Это помогает оценить, подходит ли кандидат компании. Настоятельно рекомендуется создать профиль на GitHub и регулярно его обновлять. Менеджеры по найму всегда ищут кандидатов с сильным опытом разработки ПО и вкладом в open-source. Анализ GitHub-портфолио помогает им подготовить вопросы для технических интервью. 

Профиль на GitHub
Профиль GitHub

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

Проекты портфолио
Проекты портфолио

Возможности

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

  • Open-source: GitHub предоставляет полноценную экосистему для проектов с открытым исходным кодом. Вы можете спонсировать мейнтейнеров, участвовать в проекте, использовать open-source инструмент в существующем проекте и продвигать свою работу. 
  • Совместная работа сообщества: GitHub стал площадкой для обсуждения задач, запросов на функции, вклада в код и документацию. 
  • Explore: вкладка GitHub Explore помогает находить новые проекты, популярные инструменты и события для разработчиков.
  • GitHub Gists: можно делиться фрагментами кода или встраивать их в блог или сайт. 
  • GitHub CLI: позволяет выполнять merge request'ы, просматривать код, проверять задачи и отслеживать прогресс из программы командной строки. 
  • Бесплатное хранилище: неограниченное хранилище для приватных и публичных репозиториев.
  • Веб-хостинг: можно опубликовать сайт портфолио или документацию. GitHub Pages обеспечивает простой опыт сборки и развёртывания сайта. 
  • Codespace: облачная среда разработки, интегрированная с вашим репозиторием GitHub. 
  • Project: настраиваемый и гибкий инструмент для планирования и отслеживания работы на GitHub.
  • Автоматизация: GitHub Actions автоматизирует рабочий процесс разработки: сборку, тестирование, публикацию, релиз и развёртывание.
  • Sponsor: вы можете поддержать любимый open-source проект или разработчиков ежемесячным или разовым платежом. Также разработчики могут использовать сторонние платёжные платформы, такие как ko-fi. 

Базовые команды

Прежде чем переходить к управлению проектами по науке о данных, давайте изучим самые распространённые команды Git, которые вы будете использовать в каждом проекте. К базовым относятся инициализация репозитория Git, сохранение изменений, просмотр логов, отправка изменений на удалённый сервер и слияние. 

  • git init — создаёт репозиторий Git в локальном каталоге.

  • git clone <remote-repo-address>: копирует весь репозиторий с удалённого сервера в локальный каталог. Можно использовать и для копирования локальных репозиториев.

  • git add <file.txt>: добавляет один файл или несколько файлов и папок в область подготовки.

  • git commit –m “Message”: создаёт снимок изменений и сохраняет его в репозитории. 

  • git config — используется для задания пользовательских настроек, таких как email, имя пользователя и формат файлов. 

  • git status показывает список изменённых файлов или файлов, которые ещё не подготовлены и не зафиксированы.  

  • git push <remote-name> <branch-name>: отправляет локальные коммиты в удалённую ветку репозитория.  

  • git checkout -b <branch-name>: создаёт новую ветку и переключается на неё.

  • git remote –v: показывает все удалённые репозитории.

  • git remote add <remote-name> <host-or-remoteURL>: добавляет удалённый сервер к локальному репозиторию. 

  • git branch –d <branch-name>: удаляет ветку.

  • git pull merge — сливает коммиты из удалённого репозитория в локальный каталог. 

  • git merge <branch-name>: после разрешения конфликтов слияния команда объединяет выбранную ветку с текущей.

  • git log показывает подробный список коммитов для текущей ветки.

Полный цикл разработки с GitHub
Полный цикл разработки с GitHub

Если вы хотите изучить больше команд, ознакомьтесь с нашим шпаргалкой по Git

Начало работы

В этом разделе мы будем использовать Git для отслеживания проекта по науке о данных и GitHub как удалённый сервер. Мы изучим, как установить Git, создать и клонировать репозиторий с GitHub, запустить эксперименты по машинному обучению и отправить изменения (блокнот, модель, данные) на GitHub с помощью Windows PowerShell 7.  

Установка Git

Git поддерживает все операционные системы. Вы можете установить его через инструменты командной строки или скачать и установить установщик напрямую. 

Linux

Для операционных систем на базе Debian/Ubuntu используйте `apt-get install git`, а если вы используете другую систему на базе Linux, полный список команд установки см. здесь.

macOS

Если у вас установлен homebrew, используйте эту команду для загрузки и установки Git: `brew install git`. Также можно скачать двоичный установщик и запустить его.

Windows

Установка Git на Windows не вызывает трудностей. Перейдите на страницу загрузки, выберите нужную версию Windows, затем скачайте и установите пакет. Если у вас есть инструмент winget, вы можете установить Git, выполнив в PowerShell команду winget install --id Git.Git -e --source winget

После установки Git убедитесь, что вы настроили имя пользователя и email. Эта информация используется для подписи коммитов. 

git config --global user.name "your-user-name"
git config --global user.email "your@email.com"

Более подробную информацию об установке Git смотрите здесь

Инициализация проекта

Если у вас есть аккаунт GitHub, нажмите кнопку + и выберите создание нового репозитория. Затем введите имя репозитория и добавьте краткое описание. Будет создан пустой публичный репозиторий. 

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

Существует множество способов клонировать удалённые репозитории в локальный каталог, и GitHub предоставляет подробное руководство по клонированию, добавлению удалённого репозитория и инициализации проекта Git.  

Клонирование на GitHub
Клонирование на GitHub

Мы можем просто клонировать репозиторий, указав HTTPS-ссылку. Убедитесь, что вы находитесь в рабочем каталоге, используя командную строку или PowerShell. 

git clone https://github.com/kingabzpro/DataCamp-Git.git

>>> Cloning into 'DataCamp-Git'...
>>> warning: You appear to have cloned an empty repository.

cd .\DataCamp-Git\

ИЛИ

Создайте новый каталог с именем “DataCamp-Git” и инициализируйте Git простой командой. Затем добавьте подключение к удалённому репозиторию, чтобы вы могли синхронизировать свою работу с GitHub.

mkdir DataCamp-Git
cd .\DataCamp-Git
git init

>>> Initialized empty Git repository in C:/Repository/GitHub/DataCamp-Git/.git/

git remote add origin https://github.com/kingabzpro/DataCamp-Git.git

ИЛИ

Если у вас уже есть проект в каталоге, просто инициализируйте Git с помощью `git init` и добавьте удалённый репозиторий GitHub, как показано выше. 

Простой коммит

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

Начнём с простого: создадим файл README с заголовком DataCamp-Git. Затем добавим его в область подготовки с помощью `git add`. 

echo "# DataCamp-Git" >> README.md
git add README.md

git status показывает, что мы на ветке main, а файл `README.md` подготовлен и готов к фиксации.  

git status

>>> On branch main
>>> No commits yet
>>> Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md

Чтобы создать наш первый коммит, используем `git commit` с сообщением. Как видим, первый коммит добавлен под хешем ed9c886.

git commit -m "first commit"

>>> [main (root-commit) ed9c886] first commit
>>> 1 file changed, 1 insertion(+)
>>> create mode 100644 README.md

Добавление файлов проекта

Мы используем рабочее пространство DataCamp MasterCard Stock Price with LSTM and GRU и скачиваем файлы. Автор проекта выполнил предобработку данных и обучение временных рядов на моделях LSTM и GRU. Узнайте больше о проекте из руководства Recurrent Neural Network Tutorial (RNN).

Чтобы сохранить файл модели, мы добавили новую ячейку кода в блокнот Jupyter проекта. Новый скрипт создаст каталог “model” и сохранит обе модели LSTM и GRU. 

!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')

Как видим, в репозитории Git есть папка data с CSV-файлами и папка model с весами и метаданными модели. 

Папка данных Git

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

git add .\data .\model LSTM_GRU.ipynb RNN.png

ИЛИ

Если вы хотите добавить в область подготовки все файлы, используйте точку. 

git add .

Commit и Push

Зафиксируем все изменения с простым сообщением; вывод показывает все новые файлы в режиме create. 

git commit -m "project files added"

>>> [main aa3e19a] project files added
>>>  10 files changed, 5020 insertions(+)
>>>  create mode 100644 LSTM_GRU.ipynb
>>>  create mode 100644 RNN.png
>>>  create mode 100644 data/Mastercard_stock_history.csv
>>>  create mode 100644 data/Mastercard_stock_info.csv
>>>  create mode 100644 model/GRU/saved_model.pb
>>>  create mode 100644 model/GRU/variables/variables.data-00000-of-00001
>>>  create mode 100644 model/GRU/variables/variables.index
>>>  create mode 100644 model/LSTM/saved_model.pb
>>>  create mode 100644 model/LSTM/variables/variables.data-00000-of-00001
create mode 100644 model/LSTM/variables/variables.index

Для синхронизации с удалённым репозиторием GitHub нужны имя удалённого репозитория и имя ветки: `git push <remote-name> <branch-name>`. Если у вас только один удалённый репозиторий и одна ветка, то достаточно `git push`.  

После `git push` всплывающее окно попросит ввести учётные данные — добавьте имя пользователя и пароль GitHub. Вы также можете сгенерировать персональные токены доступа и использовать их вместо пароля. Подробнее читайте в руководстве по Git Push и Pull.

git push

>>> Enumerating objects: 21, done.
>>> Counting objects: 100% (21/21), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (19/19), done.
>>> Writing objects: 100% (21/21), 1.83 MiB | 1.59 MiB/s, done.
>>> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git.git
>>>  * [new branch]      main -> main

Зайдём в наш репозиторий на GitHub kingabzpro/DataCamp-Git, чтобы убедиться, что мы успешно отправили изменения на удалённый сервер. В репозитории GitHub есть все файлы, данные и модели.

Отправка на GitHub
Отправка на GitHub

Ветки Git

Рекомендуется работать с ветками: например, если вы хотите заняться документацией проекта, создайте ветку documentation с помощью git checkout или git branch. Внесите изменения в README и, когда завершите, слейте ветку с базовой. 

В нашем случае мы создали и переключились на новую ветку readme.

git checkout -b readme

Отредактируем файл README, добавив описание проекта и ссылки на рабочее пространство RNN в DataCamp и учебник. После этого подготовим изменения и сохраним снимок с сообщением.

git add README.md
git commit -m "project description and links to blog"

>>> [readme f3b8b9b] project description and links to blog
>>>  1 file changed, 8 insertions(+)

В удалённом репозитории нет ветки readme. Чтобы создать новую ветку и отправить изменения, используем “readme:readme”. Вывод команды показывает, что созданы новые ветки и локальная и удалённая ветки `readme` синхронизированы. 

git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote:  https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>>  * [new branch]      readme -> readme

Вы можете видеть, что мы успешно отправили локальную ветку на GitHub с изменённой версией файла README.md. 

Ветка readme на GitHub
Ветка readme на GitHub

Pull request

Эта функциональность распространена в организациях. Например, разработчик программного обеспечения поработал над новой функцией и хочет слить изменения в основную удалённую ветку. Сейчас создадим pull request через графический интерфейс GitHub, нажав на кнопку Pull request. Затем выберите ветку readme, которую нужно слить с базовой (main). Можно написать подробное описание того, какие функции были добавлены, и нажать кнопку создания pull request. 

Pull request из readme в main
Pull request из readme в main

Мейнтейнер репозитория сравнит ваши изменения и сольёт их после прохождения всех проверок. В нашем случае вы — мейнтейнер, поэтому нажмите на merge request, чтобы объединить изменения с основной веткой. 

GitHub Merge Pull Request
Слияние pull request на GitHub

Поздравляем, мы успешно создали pull request и объединили его с основной веткой. Просмотреть изменения в основной ветке можно здесь

Если вы хотите просмотреть все изменения в своём репозитории git, просто введите `git log` — он покажет историю изменений вашего проекта. Ведение логов в проектах по науке о данных важно, и Git помогает отслеживать все изменения, даже в больших наборах данных. 

История логов Git
История логов Git

Заключение

GitOps имеет решающее значение для разработки дата-приложений. Это обязательный навык для всех типов IT-работ; им пользуются даже академические исследователи, делясь экспериментальным кодом с широкой аудиторией. В свою очередь, GitHub играет значительную роль в продвижении open-source, предоставляя всем бесплатную экосистему разработки ПО. 

В этом учебнике мы разобрали Git и GitHub и то, почему они важны для проектов по науке о данных. Руководство также знакомит с базовыми командами Git и даёт практический опыт отслеживания изменений в данных, моделях и коде. Если вы хотите узнать больше о Git, пройдите курс Introduction to Git на DataCamp. Вы также можете узнать о важности сертификации GitHub Foundations и о том, как она может помочь вашей карьере. 

Частые вопросы по Git

Что такое Git?

Открытая распределённая система контроля версий. Позволяет разработчикам хранить, версионировать и визуализировать изменения в проекте разработки. Способствует гибкой командной работе и оптимизированному рабочему процессу. 

Что означает Git?

Это не аббревиатура. По словам создателя, Линуса Торвальдса: “Git может означать что угодно, в зависимости от вашего настроения.” Это сочетание трёх случайных букв, которые не используются ни одной командой UNIX.  

Как клонировать репозиторий Git?

Просто введите в терминале `git clone <адрес удалённого репозитория>`. Можно клонировать как локальные, так и удалённые репозитории. Поддерживаются протоколы SSH и HTTPS.

Как удалить ветку в Git?

Для удаления локальной ветки используйте `git branch -d <local_branch_name>`, а для удаления удалённой ветки — `git push <remote_name> -d <remote_branch_name>`.

Как переключаться между ветками в Git?

Переключитесь на существующую ветку с помощью `git checkout <branch name>` или создайте и переключитесь на новую ветку с помощью `git checkout -b <branch name>`.

Как установить Git?

Для Linux используйте `apt-get install git`, а для других операционных систем перейдите на git-scm.com.

Git бесплатный?

Да, это бесплатное ПО с открытым исходным кодом под лицензией GPL-2.0.

Что такое Git Bash?

Это приложение для Microsoft Windows, предоставляющее утилиты и среду оболочки, основанные на Unix. 

Как создать новую ветку в Git?

Используйте команду `git branch <new-branch> <base-branch>` в терминале. Чтобы создать новую ветку и переключиться на неё, используйте `git checkout -b <branch name>`.

Что делает git pull?

Она обновляет локальную версию репозитория с удалённого сервера: копирует все изменения из удалённого репозитория и сливает их с локальным каталогом. Этот процесс часто требует разрешения конфликтов слияния. 

Как форкнуть репозиторий в Git?

Форк на GitHub — это процесс копирования репозитория в учётную запись пользователя GitHub из другой учётной записи. Обычно выполняется для вклада сообщества или командной работы. 

Как переименовать ветку в Git?

Для локального репозитория всё просто: используйте `git branch -m <old-name> <new-name>`. Чтобы переименовать удалённую ветку, сначала удалите старую ветку командой `git push origin --delete <old-name>`, а затем запушьте новую ветку `git push -u origin <new_name>`.

Как удалить репозиторий Git?

Можно удалить локальную папку или убрать папку .git с помощью `rm -fr .git`. Для GitHub перейдите в настройки репозитория; в конце страницы будет опция удаления.

Как установить Git на Windows?

Скачайте установщик для Windows с сайта и запустите установку, которая установит Git Bash, Git CMD и Git GUI.

Как откатить коммит в Git?

Используйте `git revert <commit sha>`, где требуется уникальный хеш любого предыдущего коммита. Можно также использовать `git revert HEAD~2`, что означает откат на два коммита назад от HEAD.   

Темы