GitExtensionsで認証付きHTTPでClone, Pull, Pushができないときの対処方法

GitExtensionsはインストールしたまんまだと、認証付きHTTPでリモートのGitレポジトリにアクセスしようとすると、アクセス時にこちらに何も訊いてくれないので、そのままタイムアウトするまで何もしないで、何かを待ってしまっています。実際には裏でコンソールからのユーザー名の入力を待っているようなのですが、こちらからそれを入力する手段がありません。

これを回避する方法は二種類あります。

方法1 _netrc(.netrc)ファイルを作成する。

C:\Users\自分のユーザー名フォルダに_netrcというファイル(.netrcではないので注意)を作成し、以下の要領で、ホスト名、ユーザー名、パスワードを記述します。こうすれば、Git/GitExtensionsは設定されたホスト名のホストにアクセする際にそのユーザー名とパスワードを使用してログインするようになりますので、GitExtensionsでも問題なくなります。_netrcに認証用データを記述することで、gitがそもそもユーザー名、パスワードをユーザーに確認しなくて良いようにします。

machine ホスト名1
login ログイン名1
password パスワード1
machine ホスト名2
login ログイン名2
password パスワード2

方法2 ユーザー名、パスワードの問い合わせをコンソールでは無くGitGuiのダイアログを使用するようにする

そのままですが、Gitの設定で、ユーザー認証をコンソール入力では無く、GitGuiのユーザー認証ダイアログを使用するように設定することで、GitExtensionsで認証が必要になった場合でもGitGuiのダイアログを表示されるようになります。ただ欠点としてはコンソールのgitコマンドを使用する場合でもユーザー認証ダイアログが表示されてしまう点です。どうしても_netrcファイルでユーザー名、パスワードを持ちたくない方はこちらの方が良いでしょう。

設定するには以下のようにコマンドを入力します。

$ git config --global core.askpass /usr/libexec/git-core/git-gui--askpass

2 thoughts on “GitExtensionsで認証付きHTTPでClone, Pull, Pushができないときの対処方法”

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください