Помощник учётных данных
Gitcito имеет дело с тремя разными видами секретов, и люди вполне обоснованно считают, что это одно и то же:
| Кто хранит | |
|---|---|
| Токены API хостинга — пул-реквесты, задачи, проверки CI | Gitcito, в связке ключей ОС |
Транспорт git@… |
Ваш SSH-ключ, через системный ssh-агент |
Транспорт https:// |
Собственный credential helper git |
Третий никто не считает функцией — ровно до того момента, когда он ломается, и тогда рождаются две самые частые жалобы в git: почему он опять у меня спрашивает? и почему он всё ещё отправляет токен, который я отозвал?
⌘K → Помощник учётных данных.

Что вы видите
Каждый настроенный credential.helper — в той области, откуда он пришёл:
system, global, затем этот репозиторий. Помощники складываются: git
опрашивает их по очереди, и помощник уровня репозитория не заменяет
глобальный.
Каждый проверяется на вашей машине:
| Метка | Что означает |
|---|---|
| готов | Программа-помощник существует и запустится |
| не установлен | Настроен, но программы нет — каждый запрос сводится к тому, что вы снова набираете пароль руками |
| пароли в обычном файле | Помощник store (см. ниже) |
Правила для конкретных хостов перечисляют секции credential.<url>.*. Они
перекрывают общую настройку для тех URL, которым соответствуют, и обычно
именно они отвечают на вопрос «почему вот этот хост ведёт себя иначе».
Как выбрать
| Помощник | Куда попадает пароль |
|---|---|
osxkeychain |
Связка ключей macOS — зашифровано, для каждого пользователя отдельно |
manager |
Git Credential Manager (Windows, кроссплатформенный) |
wincred |
Диспетчер учётных данных Windows |
libsecret |
Служба секретов Linux (GNOME Keyring, KWallet) |
cache |
Память, на 15 минут. На диск ничего не пишется |
store |
Обычный файл в вашем домашнем каталоге. Без шифрования |
Gitcito предлагает то, что действительно установлено на этой машине, отмечает подходящий для вашей ОС и делает остальные неактивными.
Область имеет значение. Для всех репозиториев пишет в вашу глобальную конфигурацию — почти всегда именно это вам и нужно; только для этого репозитория пригодится для того редкого репозитория, который аутентифицируется где-то ещё.
Помощник store и файл ~/.git-credentials
store пишет строки вида https://user:password@host в ~/.git-credentials,
открытым текстом, вообще без какого-либо шифрования. Прочитать его может всё,
что запускается от вашего имени: скрипт, postinstall какой-нибудь зависимости,
что угодно.
Если такой файл существует, эта страница сообщает об этом и считает записи. Она никогда их не показывает — весь смысл в счётчике, а прочитать содержимое, чтобы его отобразить, было бы той же самой ошибкой.
Если вы нашли такой файл и не собирались его заводить: выберите здесь настоящий помощник, затем удалите файл и один раз пройдите аутентификацию заново.
Как забыть сохранённые учётные данные
Когда токен отозван или заменён, помощник продолжает подсовывать старый, и
каждый пуш падает с 401, который ничего не объясняет. Забыть просит
настроенный помощник стереть свою запись для этого хоста — это
git credential reject, штатный документированный путь самого git.
По дороге ничего не читается: Gitcito никогда не вызывает git credential fill — команду, которая напечатала бы действующий пароль в стандартный вывод.
Следующий пуш спросит вас один раз, и помощник сохранит новый ответ.
Ограничения, о которых стоит знать
- Это хранилище git, а не Gitcito. Меняя его, вы меняете и поведение своего терминала — в этом и смысл, но знать об этом стоит заранее.
- Помощники системного уровня показываются, но не редактируются. Они живут в конфигурации, писать в которую может только администратор.
- Gitcito не может перечислить содержимое помощника. Ни один API учётных данных не отдаёт этого, не выдав сами секреты, поэтому диалог сообщает конфигурацию и стирает записи по запросу — и ничего больше.
- Токен, который вы отдали Gitcito, — это отдельная история. Отзыв одного не затрагивает другой; про сторону связки ключей см. безопасность.
См. также: Безопасность · SSH-ключи · Синхронизация