「Git」カテゴリーアーカイブ

GVFS Updates: More Performance, More Availability GVFSがVSTSやGitHubでサポートされる

情報源: GVFS Updates: More Performance, More Availability – Microsoft DevOps Blog

Connect(); でアップデートされたGVFSに関する情報のまとめ。

VSTSのPreviewでGVFSが対応されるだけでなく、GitHubでもGVFSがサポートされることになるようです。Gitで大きなレポジトリを運用しているところにはすごい朗報ですね。

Git for Windows 2.15.0 リリース

Release Git for Windows 2.15.0 · git-for-windows/git

ダウンロード、詳細は上リンクまで。

主な変更点

バグ修正

翻訳には多分間違いがあります。

混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)

まぁ上に書いたとおりです。今まで機会があるたびにお話しさせていただいていたりするのですが、いまだに1つの環境にGit for WindowsとMsys2/MnGW、もしくはGit for WindowsとCygwin、もしくはそれらの全部をインストールして環境が動かなくなった発言をtwitter他で見掛けますが、これらの環境を混在させない方が無難ですというか、混ぜるな危険です。

Msys2はCygwinからForkされた環境なので、ランタイムの内容がCygwinとは違います。Git For Windowsのツール類はMsys2のランタイム上で動いていますが、このGit For Windowsに付属しているMysy2ランタイムはGit For Windows用のMsys2ランタイムなので、本家のMsys2のランタイムとはソースレベルで異なります。つまりこれらの環境にはそれぞれ互換性が無いので同居させない方が良いし、ましてや全部の環境に対してPATHを通すようなことは絶対にしてはいけません。動かなくなります。

基本的に、Windows上で何らかのUnix互換環境が欲しい場合にはCygwinもしくはMsys2を選択し、GitもGit For Windowsではなく、それぞれの環境で用意されたGitの実行ファイルを使用してください。

どうしても混在させたい場合には、それぞれの環境を全部PATHに追加するようなことはしないで、個別の環境用の起動BATファイルなど用意し、PATHの中に複数の環境が混在しないような形で使用しましょう。

同様の理由でGit For Windows SDKの環境を直接PATHに追加することもおすすめしません。

また、Ruby On Railsの開発環境構築などで、RubyのToolkitをインストールすると、古いmsysのツールがインストールされ、PATHが追加されてしまう場合があるので、この場合にもGit For WindowsとRails開発環境のToolkitのPATHが混在しないように起動BATファイルで工夫するなどの処理が必要です。

以上で「お前は何を言っているんだ?」という感じで内容がわからない人は、Windows上にUnix互換環境を作るのは諦めていただいて、素直に仮想マシンにお気に入りのLinuxディストリビューションをインストールしていただくか、Windows Subsystem For Linuxをお使いください。

もう一度大事なことで書きますが、混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)

Git for Windows 2.14.2(2)リリース

Release Git for Windows 2.14.2(2) · git-for-windows/git

主に周辺ツールのアップデートです。ダウンロードは上のリンクへ。

その他バグ修正です。

Git for Windows v2.14.2 リリース

情報源: Release v2.14.2.windows.1: Git for Windows v2.14.2 · git-for-windows/git · GitHub

ダウンロードは上リンクより。

主な変更点:

  • Git v2.14.2への追従
  • cURL v7.55.1へのアップデート
  • pthreads(もはや必要ではない)をエミュレートするXP互換レイヤーは、現在のWindowsスレッド化APIのために削除。 これにより、スレッド化された操作が少し速くて堅牢になるはず。
  • Windows上で、UNC Path(file://server/share/repo.git)によるアクセスが可能となった。https://github.com/git-for-windows/git/commit/a352941117bc8d00dfddd7a594adf095d084d844
  • Gitインストーラは、git updateを定期的に呼び出すことによってGitを最新の状態に保つオプションを提供。
  • BusyBox v1.28.0pre.16353.2739df917に更新
  • 他の場所でも共通しているように、Ctrl + LeftとCtrl + RightはGit Bashでも単語単位で移動させる。
  • Cygwin 2.9.0に基づくMSYS2ランタイム(Git for Windows flavor)のパッチレベル2に更新。
  • Git LFS 2.3.0に更新
  • vs / masterブランチはVisual Studio 2017でも作成できるように。https://github.com/git-for-windows/git/pull/1302
  • ユーザーより要求があったので、このバージョンよりtigが付属します。

バグ修正箇所につきましては、上リンク先及びインストール時に表示されるreadmeを参照ください。

Visual Studio 2017 15.3.1 アップデータリリース

情報源: Visual Studio 2017 15.3 Release Notes

アップデートパッチが出ました。

今回のアップデートにはGitでの脆弱性対策が含まれるので必ずアップデートしましょう。

アップデートの内容は以下の脆弱性、不具合に対する対策です。

Gitのサブモジュール脆弱性とWindows, Visual Studioでの対策について

情報源: Advisory: Git vulnerability with submodules – Service Blog – Visual Studio Team Services

問題点

リモートリポジトリからフェッチするとき、URL内に埋め込まれたコマンドラインオプションでGit URLの解析を混乱させることができます。 これは、特定のコマンドラインオプションをssh実行可能ファイルに渡すために悪用される可能性があり、それらのオプションは “ProxyCommand”機能を使用して実行するコマンドを指定することがあります。

例:

このようなURLでメモ帳が開かれます。

もちろん、このURLは非常に面白く見えるので、誰かが自分自身をクローンすると確信することはまずありません。 代わりに、このURLがむしろ無邪気に見えるリポジトリにサブモジュールとして埋め込まれている場合、リスクが大きくなります。

攻撃者は.gitmodulesファイルを編集することによって、リポジトリ内のサブモジュールのURLを簡単に変更できます。

上記の悪用URLを指すように変更された例:

この無邪気なリポジトリで再帰的なクローンを実行すると、任意のコードが実行されます。

この問題はCVE 2017-1000117として報告されています。

対策

この問題の解決法は非常に簡単で効果的です:サブモジュールのURLは、Gitクライアントによってより詳細に調べられます。 SSHホスト名がコマンドラインオプションのように見える場合(つまり、「 – 」で始まる場合)、サブモジュールはブロックされます。 上記で参照した更新されたGitクライアントにはこの修正が含まれており、できるだけ早くインストールする必要があります。

  • 最新のGit for Windows(v2.14.1)は対策済みです。
  • Visual Studio 2017はこの週末公開予定のパッチを適応する必要があります。VS2017より前のVisual Studioが影響を受けることはありません。
  • また、Visual Studio Team ServicesのホストされたビルドエージェントをパッチバージョンのGitで更新しています。独自のエージェントを実行するチームでは、今週末に更新されたビルドを提供します。
  • 独自のGUIツールに関しては提供企業のサポートもしくは提供コミュニティに確認をお願いします。

Source TreeはWindows版がVer. 2.1.10、macOS版が2.6.1で対策がされています。以下のAtlassianのBlogを参照してください。

Security Warning (Git,Mercurial,SVN) – Atlassian Developers