
を実行すると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回目のキー押下後、プログラムは空行を読むそして、それを「入力の終了」インジケータとして扱います。つまり、これ以上の key=value 行は入力されないことを意味します。この時点で、キーチェーンを検索し、「提供された」フィルターに一致すると思われるエントリを見つけます。
答え2
これは私にとってはうまくいきました: コマンドラインから資格情報を削除する
$ git credential-osxkeychain erase
host=github.com
protocol=https
> [Press Return]
成功した場合、何も出力されません。動作をテストするには、GitHub.com からプライベート リポジトリをクローンしてみてください。パスワードの入力を求められた場合は、キーチェーン エントリが削除されています。