Git 2.6登場、多数の新機能と改善

Git 2.6がリリースされた。これには多くの新機能とパフォーマンス及び内部実装の改善、バグ修正が含まれている。

新しいワークフローとUI

git fsck コマンドに、プロジェクトの履歴にあるマイナーなデータエラーを扱うための新しいオプションが導入された。git fsck はリポジトリの整合性を検証するのに使われるが、過去の履歴にある問題に神経質すぎて、軽度の破損を警告し、価値のない修正をしているように見える場合が多々ある。たとえば、多くのユーザがすでにリポジトリをクローンしていた場合などだ。Git 2.6では、特定の git fsck 警告の重大性を開発者が調整できるようになる。たとえば、git config fsck.badEmail ignore というコマンドを実行すると、不正なメールアドレスを無視するようになる。

また、git fsck はリポジトリにプッシュされたオブジェクトの整合性を自動チェックするのに使うことができ、これによって古くなったオブジェクトがプロジェクトの履歴に入るのを避けることができる。その場合、新たにプッシュしたオブジェクトを完全にチェックして、おかしな状態にあるコミットをスキップするよう git fsck に教えておくと役に立つだろう。これを実現するには、git config にコミットスキップリストを与えれば良い。git config fsck.skiplist "$PWD/.git/skiplist"

git status コマンドは、リベース中に実行した時の説明が増え、リベースログの最新ステップと次ステップに関する詳細を表示するようになる。大きな一連のコミットをリベースしている時に、経過を追うのに役立つだろう。

他にも次のような便利な機能がある。

  • git log --date は開発者がカスタムの日付フォーマットを使えるようにする。例: git config log.date "format:%c";
  • git log --cc-p を伴うようになり、実際にマージコミットの差分を表示する。
  • git fast-import は新しい get-mark オプションをサポートし、ファイルディスクリプタに対応するSHA–1を表示させる。
  • git log は新しい --follow設定をサポートし、リネームをまたいでファイルの履歴を表示する。
  • git pull --rebaserebase.autostash 設定を考慮するようになる。これはデフォルトで --autostash オプションを有効にし、ダーティな状態のワークツリーをリベースできるようにする。

パフォーマンスと内部実装の改善

パフォーマンスを優先して、git pullgit am などのコマンドがCで書かれている。さらに、マルチツリーマージ後の statuscommit 操作が高速になる。また、異なるrefバックエンドをGitにプラグインするのに備えて、Git内部実装が少々変更されている。

Gitメーリングリストのアナウンスによると、Git 2.6には、Git 2.5以降、479の非マージコミットが含まれているという。新機能とバグ修正の完全なリストはリリースノートにある。