data.Science(R)

Анализ данных, машинное обучение, и визуализация в R

Контроль версий в RStudio при помощи Git

Контроль версий в RStudio

Для чего нужны системы контроля версий?

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

Что такое системы контроля версий?

RStudio включает в себя встроенную поддержку Git — популярной системы управления версиями, и отлично работает в связке с Github — крупнейшим веб-сервисом для хостинга Git-репозиториев. Знакомство с GitHub становится незаменимым инструментом для любого, кто работает с данными. Это руководство поможет начать использовать СКВ в связке RStudio, Git и GitHub.

Первичная настройка

Данное руководство подразумевает, что у вас создан аккаунт GitHub, а также установлены  RStudio и GitУбедитесь, что при установке Git вы отметили галочкой пункт Enable Git Credential Manager (для пользователей Windows потребуется свежая инсталляция .NET framework).

Enable Git Credential Manager

После того как вы установили Git, необходимо активировать контроль версий в RStudio:

Tools > Global Options > Git/SVN

  1. Поставьте галочку напротив Enable version control interface for RStudio projects;
  2. Убедитесь, что в поле Git executable указан верный путь к исполняемому файлу Git;
  3. Нажмите Create RSA key… и закройте появившееся окно;
  4. Затем нажмите View public key и скопируйте ключ в буфер обмена.

Настройка Git в RStudio

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

Меню пользователя > Settings > SSH and GPG keys

  1. Нажмите New SSH key;
  2. Вставьте скопированный ранее ключ и дайте ему имя;
  3. Нажмите Add SSH key.

Настройка SSH в GitHub

Создание проекта для версионного контроля

Управление версиями в RStudio привязано к проектам (Projects). Проекты — удобный инструмент для разделения работы на несколько различных контекстов, каждый из которых находится в своей собственной директории. Создадим проект:

File > New Project… > New Directory > Empty Project

  1. Укажите имя для нового проекта и его директорию;
  2. Отметьте галочку напротив Create a git repository.

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

Далее следует активировать ваш GitHub аккаунт в Git. Для этого в RStudio заходим в системную консоль Shell и вводим следующие команды, заменяя значения в кавычках на ваши регистрационные данные в GitHub:

Tools > Shell…

Создадим новый скрипт, который мы хотим добавить в наш репозиторий и сохраним его в рабочий каталог. Он должен появиться во вкладке Git на панели Environment / History. Отметьте появившийся файл галочкой: статус файла должен измениться на зеленую букву A

Добавление файла под версионный контроль

Теперь, когда файл скрипта добавлен под версионный контроль и все изменения в нём индексируются, нажмите кнопку Commit и в открывшемся окне введите идентификационное сообщение (комментарий) в поле Commit message.

Commit

Нажмите кнопку Commit.

Для тех, кто предпочитает работать с командной строкой, — аналогичная команда оболочке shell:

Сейчас вы добавили текущую версию вашего скрипта в локальный репозиторий на вашем компьютере. Теперь отправим его в удалённый репозиторий GitHub. Для этого создадим новый репозиторий в GitHub:

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

Добавляем удалённый репозиторий. Копируем содержимое указанных на скриншотах полей и подставляем их значения в соответствующие команды консоли:

Добавление удалённого репозитория

Добавление удалённого репозитория

И отправляем скрипт в GitHub:

Теперь можно увидеть ваш скрипт в репозитории Github. Каждый раз изменяя скрипт вы должны добавлять его в индекс, делать снимок состояния вашего индекса при помощи команды git commit и отправлять в удалённый репозиторий. Чтобы получить изменения из удалённого репозитория используйте команду git pull.

Кнопки в виде стрелок во вкладке Git теперь активны и соответствуют командам git push и git pull. Основной инструмент, используемый для определения, в каком состоянии находятся ваши файлы — это команда git status и соответствующая ей колонка во вкладке Gitфайлы добавленные в отслеживаемые помечены зелёной буквой A, а отредактированные файлы синей M.

Для более тесного знакомства с консольными командами смотрите подробное руководство по Git.

При подготовке использовались следующие материалы: