初投稿です。
社内ネットワークからGitへ接続しようとした際に大分手こずったので、備忘録として投稿します。
なお実務経験1年未満の本物初心者なので間違っている箇所は指摘していただけるとありがたいです。
発端
弊社ではオンプレミス版GitLabとクラウド版GitLabが利用されています。
自分は元々オンプレミス版を利用したプロジェクトに参加しており、クラウド版を利用した新規プロジェクトへ参加する際に問題が発生しました。
社内プロキシの関係で、クローンが行えなかったのです。
その後、プロキシの設定を行き当たりばったりでいじっていいたら、接続できていたはずのオンプレ版にも接続できなくなってしまいました。
試したこと
1. git configコマンドを用いてプロキシ設定を記述
コマンドプロンプト上で以下のコードを実行しました。
$ git config --global http.proxy http://<ユーザ名>:<パスワード>@<プロキシサーバのアドレス>:<プロキシサーバのポート番号>
$ git config --global https.proxy http://<ユーザ名>:<パスワード>@<プロキシサーバのアドレス>:<プロキシサーバのポート番号>
httpsの場合もURLはhttpであることに注意。
これにより、/gitconfigファイルへプロキシの情報が記述され、プロキシサーバ経由でのGit接続が可能になります。
※自分の場合、/gitconfigファイルへ記述されずこの設定が足を引っ張ったので注意点の項目で後述します。
2. ユーザー環境変数、システム環境変数へHTTPS_PROXYを追加
$ set http.proxy = http://<ユーザ名>:<パスワード>@<プロキシサーバのアドレス>:<プロキシサーバのポート番号>
$ set https.proxy = http://<ユーザ名>:<パスワード>@<プロキシサーバのアドレス>:<プロキシサーバのポート番号>
これはあまり意味がなかったので、最終的に削除しました。
Git Bash上ではsetではなくexportコマンドなので注意。
3. 資格情報マネージャーを開きWindows資格情報の中からGitLabの資格情報を削除する
Gitの認証で設定したユーザー名とパスワードはWindowsの資格情報に保存されます。
初回の接続時にユーザー名とパスワードの入力を求められます。合っていれば問題ないのですが、間違った情報を入力しても資格情報として記録されてしまいます。
Windowsの検索画面で「資格情報マネージャー」を検索し、Windows資格情報の中から接続に失敗したGitの情報を削除しましょう。
その語、再度接続する際に、ユーザー名とパスワードの入力を求められるので、正しいものを入力しましょう。
注意点
- 「git configコマンドを用いてプロキシ設定を記述」にて、「/gitconfigファイルへプロキシの情報が記述され、プロキシサーバ経由でのGit接続が可能になります。」と書きましたが、自分の場合は、gitconfigファイルへ記述されませんでした。そのため、自分はgitconfigファイルへ直接http, httpsの設定を書き込みました。
この場合は、コマンドプロンプト上で変更したgitconfigファイルと直接変更したgitconfigファイルは違うので、それぞれで修正する必要があります。
おまけ
$ GIT_CURL_VERBOSE=1
上記のコマンドのあと、git clone などのGitコマンドを実行すると、Gitコマンドのデバッグが行えます。