
Если я выполняю git credential-osxkeychain get
, он просто зависает, когда должен возвращать информацию о том, какие учетные данные хранятся в связке ключей. Есть ли способ заставить это работать?
Я использую OS X 10.15.5
$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>
$ git --version
git version 2.27.0
решение1
Все git credential-*
помощники предназначены для внутреннего использования самим git и следуют определенному интерфейсу.
Когда помощник запускается с get
подкомандой, онждет ввода на stdinи ожидает прочитать ряд строк "ключ=значение". Например, host=github.com
. Вот как git сообщает помощникукоторыйнеобходимы учетные данные.
Когда вы запускаете программу непосредственно в терминале, ее stdin просто подключается к вводу с клавиатуры. После первого Enterнажатия клавиши инструмент уже запущен, но ждет ввода с клавиатуры, точно так же, как это делают такие инструменты, как cat
или sed
.
После второго нажатия клавиши программачитает пустую строкуи рассматривает его как индикатор "конца ввода", т. е. что больше не будет введено строк ключ=значение. В этот момент он просматривает цепочку ключей и находит любую запись, которая, по его мнению, соответствует вашему "предоставленному" фильтру.
решение2
Мне это помогло: Удаление учетных данных через командную строку
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
Если все прошло успешно, ничего не выводится. Чтобы проверить, работает ли это, попробуйте клонировать частный репозиторий с GitHub.com. Если вам будет предложено ввести пароль, запись в связке ключей была удалена.