Источники и синхронизация

Pull, Push и ветки

Ежедневная работа с Git-источником: как забрать изменения из репозитория, отправить свои, посмотреть diff перед операцией, создать и переключить ветку, что такое Hard Pull.

При активном Git-источнике в футере плагина есть три кнопки: Refresh проверяет состояние репозитория, Pull забирает изменения, Push отправляет ваши. Синяя точка на кнопке значит, что есть что забрать или отправить. Плагин сам проверяет репозиторий раз в минуту и при возвращении в окно Figma.

Pull: забрать изменения

  1. Нажмите Pull в футере. Откроется окно Pull Changes.
  2. Слева список изменённых файлов с фильтрами по типу изменения: новые, изменённые, удалённые. Справа сравнение версии в плагине и версии в репозитории.
  3. Нажмите Pull, чтобы применить изменения. Cancel закрывает окно без изменений.

Окно Pull Changes: один входящий файл, сравнение Local и Remote, последний коммит с автором и временем.

В заголовке окна показано число входящих файлов и счётчики добавленных, изменённых и удалённых. Внизу последний коммит ветки: сокращённый хеш, сообщение, автор и время.

Если изменений нет, окно сообщит Repository is up to date, а кнопка Pull будет неактивна.

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

Pull в процессе: дерево файлов пустое, в футере индикатор загрузки.

По завершении плагин покажет сообщение вида Synced: 12 updated, 1 deleted. Если часть файлов не удалось загрузить, сообщение попросит повторить Pull.

Hard Pull

Оранжевый чип Hard pull required в заголовке окна значит, что с момента последнего Pull изменился репозиторий, ветка или папки Tokens Path и Data Path. В этом случае обычный Pull сначала очистит локальные данные плагина, а затем загрузит всё заново, чтобы не смешивать файлы разных веток. Кнопка Hard Pull делает то же самое принудительно: используйте её, если локальное состояние выглядит сломанным и нужно взять всё из репозитория заново.

Hard Pull не трогает репозиторий, он перезаписывает только данные плагина.

Push: отправить изменения

  1. Измените токены в плагине и сохраните файл.
  2. Нажмите Push в футере. Откроется окно Push Changes со списком файлов и сравнением: слева версия в репозитории, справа ваша.

Окно Push Changes: изменённый файл и построчное сравнение.

  1. Введите сообщение коммита и нажмите Push.

Заполненное сообщение коммита. Для GitLab доступна ссылка Show format guide с примерами формата Conventional Commits.

Плагин создаст один коммит со всеми изменёнными файлами: токенами, данными Database, маппингами и изображениями. По завершении появится сообщение Pushed: N updates, M deletes и уведомление Push completed внутри плагина.

Чип Scope changed в заголовке предупреждает, что репозиторий, ветка или папки изменились после последнего Pull: убедитесь, что отправляете изменения туда, куда собирались.

Если изменений нет, плагин сообщит No changes to push. Если в подключении не указан Tokens Path, файлы токенов в Push не попадут, плагин отдельно предупредит об этом.

Сравнение файлов

В обоих окнах работает одно и то же сравнение:

  • Стрелки над сравнением и клавиши F7 и Shift+F7 переходят между изменениями.
  • Панель Files можно свернуть, чтобы сравнение заняло всю ширину.
  • Метка у файла значит, что содержимое отличается только переводами строк или пробелами; такой файл всё равно попадёт в коммит.
  • Очень большие файлы, больше 1 МБ или 10 000 строк, не показываются построчно, чтобы плагин не тормозил. Изменение при этом учитывается, а посмотреть его можно в репозитории.
  • Изображения и другие бинарные файлы показываются как строка в списке без сравнения.

Ветки

Ветка выбирается в меню, которое открывается по чипу источника в футере. В нём список веток репозитория, поиск и кнопка обновления списка. Выбор ветки переключает плагин на неё; после этого нажмите Pull, чтобы загрузить её содержимое. Плагин напомнит: Branch changed. Run Pull to sync.

После переключения в футере показана новая ветка docs-demo.

Создать ветку

  • Create Branch создаёт ветку от текущей.
  • Create Branch From... создаёт ветку от любой другой: выберите исходную в списке Source Branch.

Окно Create Branch From: выбор исходной ветки и имя новой.

Имя новой ветки docs-demo. Плагин проверяет имя по правилам Git: без пробелов, без «..», не заканчивается на «.lock».

После Create Branch ветка появляется в репозитории, плагин переключается на неё и предлагает сделать Pull.

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

Если что-то не работает

Что случилосьЧто делать
Кнопки Pull и Push неактивныАктивен не Git-источник. Выберите подключение в меню футера
Remote repo is too large и кнопки заблокированыПровайдер вернул неполный список файлов. Сузьте Tokens Path и Data Path в подключении
Push rejectedСервер не принял сообщение коммита. Для GitLab откройте Show format guide и приведите сообщение к нужному формату
Protected BranchВ эту ветку нельзя писать напрямую. Создайте другую ветку и работайте в ней
После Pull переменные в Figma не обновилисьPull меняет только файлы в плагине. Нажмите Export variables & styles, чтобы обновить переменные, или включите автоэкспорт после Pull в config.json
Pull останавливается с сообщением про SXL BridgeВ подключении включён Local Storage, а Bridge не запущен. Запустите Bridge и повторите
Нужно понять, что произошлоВкладка Diagnostics → команда log

См. также