2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[memo] git for windows (git bash) のバージョンアップ

Posted at

はじめに

git for windows (git bash) のバージョンアップをする機会があったので、将来の自分のためにメモします。

git for windows のバージョン確認

git for windows のバージョン確認は、普通に git 本体のバージョンを確認すれば良いみたい。
具体的には git bash 上で以下のコマンドを実行すれば OK。

git version

git for windows のバージョンアップ

git bash 上で、以下を実行すれば OK。

git update-git-for-windows

実体のコマンドは git-update-git-for-windows というシェルスクリプトで、先頭が git- で始まっていると git のサブコマンド化がされるため、git update-git-for-windows で実行が可能なようです。

git bash 上での実行結果
$ which git-update-git-for-windows
/mingw64/bin/git-update-git-for-windows

Windows 側から見た実体はインストールした場所によると思いますが %ProgramFiles%\Git\mingw64\bin\git-update-git-for-windows 等のはずです。

ただし、この update を実行すると %ProgramFiles%\Git\bin\bash.exe コマンド本体が入れ替わるため、Windows Terminal 上の git bash で実行するとエラーが起きるようです(Windows Terminal から見れば、実行しているコマンドがいきなり削除されるので)。
一度試してみたら、エラーにはなるもののアップデートは完了している感じでした。
でも、念のため、Windows Terminal からではなく通常の git bash の画面から実行したほうが良いかも。

【参考】Windows Terminal 上で git bash を使う方法

proxy 環境下でのバージョンアップ

上記は、通常の環境(非 proxy 環境)でのバージョンアップですが、proxy 環境下でバージョンアップしたい場合には多少設定が必要なようです。
(通常の git 操作で、 proxy 外とやり取りをしている人は、すでに対策済だろうと思います)

まず、proxy の設定が必要です。
前述の git-update-git-for-windows を見ると、内部で curl コマンドを使用しているので、curl 用の環境変数設定などが必要です。

普通に以下のようにすればよいはず(ユーザーID/パスワード/proxyサーバー名/ポート番号は全て仮の値です)。

export https_proxy=http://PROXY_USER:PROXY_PASSWD@proxy.exsample.com:8080
git update-git-for-windows

ちなみに、git の proxy 設定 git config --get http.proxy で設定が取得できる場合には、git-update-git-for-windows スクリプトの中で自動的に環境変数に設定してくれるようなので、手動での設定は不要です。

また、proxy を経由して curl 側でアクセスする際に、いくつかのエラーが発生する可能性があります。

  • 証明書の検証でエラーが発生
  • URL のリダイレクトが発生

それぞれ、curl のオプションとして --insecure (-k と同じ)あるいは --location (-L と同じ) をつければ回避できます。
ただし、git-update-git-for-windows スクリプトを直接書き換えるのは問題だと思うので、~/.curlrc ファイルを一時的に作ってから実行します。

~/.curlrc
--insecure
--location

(試してないけど --insecure の代わりに --proxy-insecure の方がいいかも)

また、proxy の設定も環境変数ではなく ~/.curlrc で設定することも可能だと思います。

不要であれば、通常は消しておくとよいかも。

※もっと良い方法があればコメントください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?