GitのリモートリポジトリへHTTP認証を使ってアクセスしていると、 毎回ユーザー名・パスワードを求められるので面倒です。 この入力を回避するには下記の方法があります。
gitconfigに下記の記述を加えます。
[credential "https://example.com"]
username = me
Gitは設定したURLに対して、ホスト名とプロトコルがマッチしているかを見ています。 例として、上記の設定がgitconfigに記述されていた場合、マッチするURLは以下のようになります。
https://example.com/hoge.git // マッチする
http://example.com/hoge.git // マッチしない
https://hoge.example.com/hoge.git // マッチしない
GitのCredential helpersを使うことによって、GitもしくはGit以外のプログラムが 提供するパスワード管理システムを認証に利用することができます。
Credential helpersには以下の2種類があります。
- cache
- 一時的に認証を保持
- メモリ上にパスワードを保持し、タイムアウト後は破棄
- store
- 無期限に認証を保持
- ファイル(デフォルトでは
~/.git-credentials
)に平文でユーザー名とパスワードを保持
環境によってはサードパーティ製のhelperがあるようです。
利用できるhelperはgit help -a | grep credential
で確認できます。
$ git help -a | grep credential
credential relink
credential-cache remote
credential-cache--daemon remote-ext
credential-store remote-fd
credential-osxkeychain remote-hg
Macの場合はcache
とstore
の他にもosxkeychain
があることが確認できます。
osxkeychain
を指定した場合は、Keychainがパスワードを保持します。保存されたパスワードはKeychain
Accessから確認可能です。