Source Control
Панель «Контроль версий» позволяет расширению работать с собственной историей Git прямо в Мастерской. Вы можете индексировать и коммитить изменения, смотрите историю и диффы, управлять ветками и пушить в удалённый репозиторий, не покидая Fragmenta.
Где находится
«Контроль версий» — вкладка в левой панели Мастерской, рядом с файловым Explorer. Она всегда отслеживает активное расширение: репозиторий соответствует папке этого расширения на вашем устройстве. У каждого расширения свой отдельный репозиторий, при этом «Контроль версий» не используется для проектов.
Чтобы использовать контроль версий, расширение уже должно находиться на устройстве. Если расширение расположено в облаке, сначала появится действие «Скачать на устройство». Если папка расширения ещё не является репозиторием Git, нажмите «Инициализировать репозиторий» - создаст репозиторий на ветке по умолчанию (main).
Коммит изменений
Зафиксируйте изменения
Изменённые файлы сгруппированы по состоянию, у каждой группы есть счётчик:
- «Изменения» — модифицированные файлы, отслеживаемые Git.
- «Проиндексировано» — то, что войдёт в следующий коммит.
- «Неотслеживаемые» — новые файлы, которые Git ещё не отслеживает.
- «Конфликты слияния» — файлы с конфликтами во время merge.
Проиндексируйте
Вы можете «Проиндексировать» файл (или всю группу), чтобы включить его в следующий commit, «Убрать из индекса» — чтобы вернуть обратно, «Откатить изменения» — чтобы вернуть файл к последнему коммиту — это необратимо, поэтому запрашивается подтверждение. Откат неотслеживаемого файла удаляет его.
Закоммитьте
Введите сообщение и сделайте коммит. В поле сообщения можно использовать mod + Enter. При первом коммите вас попросят указать Git-идентичность (имя и email), предзаполненную из вашего аккаунта.
Основная кнопка меняется в зависимости от состояния репозитория: «Коммит» при наличии изменений, Publish Branch, когда у ветки ещё нет upstream, затем Push, Pull или Sync Changes — в зависимости от того, насколько вы впереди или позади remote.
История и диффы
«Граф» показывает историю коммитов, включая линии веток, значки ссылок и относительные метки времени. Щёлкните коммит правой кнопкой, чтобы увидеть такие параметры, как: «Перейти на коммит», «Скопировать ID коммита», «Скопировать сообщение коммита», «Создать ветку…», при этом левый клик открывает его дифф.
Диффы открываются в области редактора. Рабочие или проиндексированные изменения файла отображаются рядом с последним коммитом, а коммит открывается как унифицированный патч.
Сигналы в редакторе
Пока «Контроль версий» активен, вы также видите индикаторы состояния Git прямо там, где работаете:
- Значки в Explorer — каждый файл показывает букву и цвет, обозначающие его состояние (изменён, добавлен, удалён, переименован, неотслеживаем, конфликтен и так далее), а эти индикаторы сводятся на содержащих их папках.
- Маркеры на полях — добавленные, изменённые и удалённые строки отмечаются на полях редактора кода.
- Встроенное разрешение конфликтов — у конфликтующих файлов появляются встроенные действия: «Принять текущее изменение», «Принять входящее изменение» и «Принять оба изменения», плюс баннер слияния и «Прервать слияние».
Ветки и удалённые репозитории
Вы можете управлять ветками из меню ⋯ панели: «Переключить ветку…», «Создать ветку…» и «Удалить ветку…». Индикатор ветки в нижней панели — это также ссылка на окно выбора «Переключить ветку…», где также можно создать ветку.
Чтобы подключить удалённый репозиторий, используйте «Добавить remote…». Это добавит origin и свяжет удалённый репозиторий с расширением, чтобы публикация могла запушить в него тегированный релиз. После подключения Fetch, Pull, Push и «Синхронизировать» перемещают коммиты между вашей машиной и удалённым репозиторием.
Аутентификация использует учётные данные системного Git (SSH-ключи, credential helper). Если удалённая операция не проходит аутентификацию, «Контроль версий» покажет действие «Открыть терминал», чтобы вы могли войти так, как ожидает ваша настройка Git.
Дальше
- Публикация — релиз коммитит, ставит тег
v{version}и пушит в привязанный remote. - Что публикуется — какие файлы попадают в пакет.