# XPipe Git Vault

XPipe может синхронизировать все твои данные о соединениях с собственным удаленным git-репозиторием. Ты можешь синхронизироваться с этим репозиторием во всех экземплярах приложения XPipe одинаково, каждое изменение, которое ты сделаешь в одном экземпляре, будет отражено в репозитории.

Прежде всего, тебе нужно создать удаленный репозиторий с помощью твоего любимого git-провайдера на выбор. Этот репозиторий должен быть приватным.
Затем ты можешь просто скопировать и вставить URL в настройку удаленного репозитория XPipe.

Также тебе нужно иметь готовый локально установленный клиент `git` на твоей локальной машине. Ты можешь попробовать запустить `git` в локальном терминале, чтобы проверить.
Если у тебя его нет, ты можешь зайти на сайт [https://git-scm.com](https://git-scm.com/), чтобы установить git.

## Аутентификация в удаленном репозитории

Существует несколько способов аутентификации. Большинство репозиториев используют HTTPS, где тебе нужно указать имя пользователя и пароль.
Некоторые провайдеры также поддерживают протокол SSH, который также поддерживается XPipe.
Если ты используешь SSH для git, то наверняка знаешь, как его настроить, поэтому в этом разделе мы рассмотрим только HTTPS.

Тебе нужно настроить свой git CLI так, чтобы он мог аутентифицироваться с удаленным git-репозиторием по HTTPS. Сделать это можно несколькими способами.
Ты можешь проверить, сделано ли это уже, перезапустив XPipe после настройки удаленного репозитория.
Если он попросит тебя ввести учетные данные для входа, значит, тебе нужно их настроить.

Многие специальные инструменты вроде этого [GitHub CLI](https://cli.github.com/) при установке делают все автоматически за тебя.
Некоторые новые версии git-клиентов также могут аутентифицироваться через специальные веб-сервисы, где тебе нужно просто войти в свой аккаунт в браузере.

Существуют и ручные способы аутентификации с помощью имени пользователя и токена.
Сейчас большинство провайдеров требуют ввести персональный токен доступа (PAT) для аутентификации из командной строки вместо традиционных паролей.
Общие страницы (PAT) ты можешь найти здесь:
- **GitHub**: [Personal access tokens (classic)](https://github.com/settings/tokens)
- **GitLab**: [Personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)
- **BitBucket**: [Персональный токен доступа](https://support.atlassian.com/bitbucket-cloud/docs/access-tokens/)
- **Gitea**: `Настройки -> Приложения -> раздел Manage Access Tokens`.
Установи разрешение токена для репозитория на чтение и запись. Остальные разрешения токена могут быть установлены как Read.
Даже если твой git-клиент запрашивает у тебя пароль, ты должен ввести свой токен, если только твой провайдер все еще не использует пароли.
- Большинство провайдеров больше не поддерживают пароли.

Если ты не хочешь каждый раз вводить свои учетные данные, то можешь использовать для этого любой менеджер учетных данных git.
Более подробную информацию можно найти, например:
- [https://git-scm.com/doc/credential-helpers](https://git-scm.com/doc/credential-helpers)
- [https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git](https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git)

Некоторые современные git-клиенты также заботятся о хранении учетных данных автоматически.

Если все работает, XPipe должен протолкнуть коммит в твой удаленный репозиторий.

## Добавление категорий в репозиторий

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

Чтобы соединения той или иной категории были помещены в твой git-репозиторий,
тебе нужно нажать на значок шестеренки (при наведении курсора на категорию)
на вкладке `Связи` под обзором категории слева.
Затем нажми на `Add to git repository`, чтобы синхронизировать категорию и соединения с твоим git-репозиторием.
Это добавит все синхронизируемые соединения в git-репозиторий.

## Локальные соединения не синхронизируются

Любое соединение, расположенное на локальной машине, не может быть общим, так как оно относится к соединениям и данным, которые доступны только в локальной системе.

Некоторыми соединениями, основанными на локальном файле, например SSH-конфигами, можно поделиться через git, если базовые данные, в данном случае файл, также были добавлены в git-репозиторий.

## Добавление файлов в git

Когда все готово, у тебя есть возможность добавить в git любые дополнительные файлы, например SSH-ключи.
Рядом с каждым выбранным файлом есть кнопка git, которая добавит файл в git-репозиторий.
Эти файлы также будут зашифрованы при добавлении.
