Работа с GitHub

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

Эта статья описывает базовый минимум для работы с репозиториями в GitHub. При большом желании и для большего понимания рекомендуется ознакомиться с официальной документацией git и пользоваться CLI1.


Основные понятия, с которыми вы будете работать — это репозиторий и коммит.

  • Репозиторий — это место, где хранится и поддерживаются проект и все его версии. В нашем случае: файлы модификации.
  • Коммит — это сохранение набора изменений в истории локального репозитория.

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

Также не забудьте зарегистрироваться на самом GitHub! Сделать это можно по этой ссылке.

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

Под созданием репозитория можно понять три вещи:

  • Создание нового пустого репозитория;
  • Создание репозитория из папки мода с помощью добавления уже существующего проекта как отдельный репозиторий;
  • Клонирование репозитория.

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

Для создания пустого репозитория зайдите в приложение GitHub Desktop, в верхнем левом углу окна откройте меню File и нажмите New Repository….

Меню создания репозитория

После этого в поле Name введите название своего мода (желательно вводить название папки с модом, латиницей и без спецсимволов, например ray_v_panelke или wnfh), в поле Local path введите путь к тому месту, где будет храниться ваш мод и находиться ваш локальный репозиторий (если вы хотите, чтобы в мод сразу можно было играть, то выберите путь, ведущий к папке Steam/steamapps/common/Everlasting Summer/game или Steam/steamapps/workshop/content/331470/<любое название папки>) и нажмите на кнопку Create repository.

Окно создания репозитория

Для того чтобы опубликовать ваш репозиторий, нажмите на кнопку Publish repository в главном окне и в окне публикации.

Кнопка публикации репозитория

Окно публикации репозитория

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

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

В верхнем левом углу окна откройте меню File и нажмите Add local repository….

Меню добавления локального репозитория

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

При создании все файлы проекта будут перенесены в репозиторий без изменений.

Окно добавления локального репозитория

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

Клонирование репозитория

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

Для клонирования репозитория в верхнем левом углу окна откройте меню File и нажмите Clone repository….

Меню клонирования репозитория

После этого выберите нужный вам репозиторий, в поле Local path введите путь к тому месту, где будет храниться ваш мод и находиться ваш локальный репозиторий (если вы хотите, чтобы в мод сразу можно было играть, то выберите путь, ведущий к папке Steam/steamapps/common/Everlasting Summer/game или Steam/steamapps/workshop/content/331470/<любое название папки>) и нажмите на кнопку Clone.

Окно клонирования репозитория

Операции Fetch, Pull и Push

Основные типы операций над репозиторием — это Fetch, Pull и Push.

  • Fetch — операция получения актуальных данных о репозитории.
    Эта операция доступна, если у вас нет невыгруженных коммитов в локальном репозитории или если GitHub Desktop не нашёл изменений в удалённом репозитории при последней проверке.

  • Pull — операция "подтягивания" последних коммитов из удалённого репозитория и скачивания их в локальный репозиторий.
    Эта операция доступна, если у вас нет невыгруженных коммитов в локальном репозитории и GitHub Desktop видит изменения в удалённом репозитории, не представленные в локальном.

  • Push — операция "выталкивания" последних коммитов из локального репозитория в удалённый репозиторий.
    Эта операция доступна, если у вас имеются невыгруженные коммиты в локальном репозитории.

Чтобы создать коммит введите его название, введите описание (более длинное описание изменений, необязательно) и нажмите Commit to main.

Создание коммита

По отдельности все эти операции доступны во вкладке Repository, а также допустимую операцию можно вызвать, нажав на соответствующую кнопку справа от выбора ветки.

Операции Fetch, Pull и Push

Для названий коммитов существует особое соглашение под названием "Conventional Commits". Цель соглашения — придавать истории изменений смысл, понятный одновременно людям и автоматизированным инструментам. Также он позволяет автоматически определять характер изменений, формировать CHANGELOG и управлять релизами по истории коммитов.

Эти рекомендации вы можете увидеть ниже.

Рекомендации по форматированию названий коммитов

Сам формат названия такой:

<Тип><Часть проекта (необяз.)>: <Краткое описание>

Из типов которые могут понадобиться во время разработки модов выделяют:

Тип Назначение
feat Новая функциональность
fix Исправление ошибки
revert Отмена предыдущего коммита
chore Мелкие технические изменения
style Мелкие стилистические изменения
refactor Рефакторинг2
perf Улучшение производительности

Настройка .gitignore

Если в папке локального репозитория создать файл с названием .gitignore, то в онлайн-репозиторий не будут загружаться файлы, пути к которым записаны в этом файле. К примеру:

**/*.rpyc
exactFile.txt
/folder1/folder2
/folder1/exactFile.txt
/folder1/*.mp3

Файл .gitignore с таким содержимым будет игнорировать все файлы .rpyc, файл exactFile.txt, всё содержимое папки folder2 в папке folder1, файл exactFile.txt в папке folder1 и все файлы .mp3 в папке folder1.

Вы можете настроить свой .gitignore как хотите, выделяя нужные файлы для игнорирования репозиторием, но рекомендуется использовать этот:

**/*.rpyc
**/*.rpymc

*.code-workspace
/.vscode/*

Имейте ввиду, что файлы, попадающие под фильтр в .gitignore, но уже имеющиеся в репозитории в сети, не будут удалены.

Предоставление доступа к репозиторию

Чтобы предоставить доступ к своему репозиторию другим пользователям, перейдите на страницу вашего репозитория, войдите в настройки и во вкладке Collaborators нажмите кнопку Add people.

Настройки доступа к репозиторию

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

Выбор участника репозитория

Приглашение участника репозитория

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

В нашем случае предоставлять доступ к пользовательскому репозиторию может только его создатель!


1^

Command Line Interface — текстовый интерфейс командной строки, который позволяет управлять компьютером, операционной системой и программами с помощью ввода текстовых команд, а не через графический интерфейс (GUI) с кликами и меню.

2^

Рефакторинг — процесс изменения внутренней структуры программного кода без изменения его внешнего поведения.

Обновлено