BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ワークフローとパフォーマンスを改善したGit 2.20

ワークフローとパフォーマンスを改善したGit 2.20

原文(投稿日:2018/12/12)へのリンク

Git 2.20にはクローンやフェッチ、grepの改善など、さまざまな変更と修正が加えられている。さらに、Windows版でサポートするWindowsのバージョンがVista以降に設定された。

Git 2.20はユーザビリティ向上とパフォーマンス改善、バグフィックスに重点を置いている。例えば、大文字と小文字を区別しないファイルシステムにリポジトリをクローンする場合、大文字小文字のみが違うファイル名を持つファイルをこれまでよりうまく扱えるようになった。このような場合は、ファイルの紛失を防ぐために警告が発行される。動作の改善されたもうひとつのコマンドがgit fetchだ。これまではタグの不変性を参照せず、既存のタグをメッセージなしに更新していたが、新バージョンでは、--forceを指定しなければエラーになる。

コミットグラフ生成に進度表示が追加された。グラフの生成にかなりの時間を要するような大規模リポジトリでは、ユーザエクスペリエンスが改善される。同じようにgit statusコマンドでも、時間を要するリポジトリインデックスの参照時にプログレスバーが表示されるようになった。

git grepコマンドでは、--no-recursiveフラグを使った再帰的でない形式での実行が可能になった。これは--max-depth 0と同意である。

最も多く利用されるGitコマンドのひとつである対話型リベースでは、ユーザに制御を返すbreakオペレーションがto-doリストで指定できるようになった。特定のコミット前に停止するオペレーションは、rebase操作のコミットに手作業で変更を加えたい場合に便利である。

Git 2.20はコンフィギュレーションの柔軟性も向上している。バージョン2.19以前のGitでは、system(/etc/configgit config --system ...)、グローバルまたはユーザ単位(~/.gitconfiggit config --global ...)、リポジトリ単位(./.git/configgit config --local ...)という3種類のコンフィギュレーションファイルがサポートされていた が、同じリポジトリを共有するワークツリーで異なるコンフィギュレーションを持つ方法がサポートされていないため、これでは不十分だった。新バージョンでは、git configコマンドで--worktreeフラグを使用することにより、.git/config.worktreeファイルを読み書きできるようになった。

パフォーマンスの面では、git submodule updategit rebasegit rebase -iがC言語で書き直された他、git pullgit amgit rebaseなど、すでにC言語に移植されているものについても、パフォーマンスの改善が図られている。

Git 2.20には他にも、編集中に空のコミットメッセージを指定するとrebaseがアボートする問題、再利用される変数が初期化されていないために発生するgit stattusのアサーションなど、多数のバクフィックスが含まれている。

最後に、今回のリリースから、Windowsプラットフォームの最低動作条件としてWindows Vista以降が必要になった。

Git 2.20には、この記事では紹介しきれないようなものが他にもたくさんあるので、公式リリースノートを見逃さないでほしい。

この記事に星をつける

おすすめ度
スタイル

BT