新しい Git 1.8.2 リリースについて知っておくべきこと

Nicola Paolucci
Nicola Paolucci
リストに戻る

お気に入りのツールのリリース ノートの中に隠された (またはちらっと見えている) 宝物を探し回ること、それが私の喜びです。毎回ちょっとしたクリスマスみたいなものです。私の忠実な OSX オープン ソース ウィンドウ マネージャーの Slate や、RailsDjangoCoffeeScript、そしてもちろん Git など、その他のいろいろなアプリケーションの新しいバージョンがリリースされる際は、あの期待と好奇心でいっぱいの素晴らしい気持ちになるものです。

アップグレード、アップグレード、アップグレード

新しい git 1.8.2 リリースが公開されました。もちろん、これは最新バージョンにアップグレードすることを意味します。移行は比較的スムーズに行われるはずです。

  • homebrew を OSX でご利用の場合は、brew update && brew upgrade git と入力するだけです。
  • Ubuntu ベースのディストリビューションをご利用の場合は、魔法のような apt trick を使用します (その他のディストリビューションについては、読者の皆様への課題として残すことにします)。
  • Windows をご利用の場合は、新しいインストーラーを実行するだけです。

Git 1.8.2 の新機能

いつものように多くの内容が修正されました。この最新リリースには、いくつかの点で興味を引かれました。

add-u と-A の動作を合理化済み

ファイルを現在のディレクトリからインデックスに追加する際、git add -u は削除ファイルもステージングするように Git に指示するのに使用されるフラグです。

git add -A は、現在のディレクトリから開始してすべてを追加し、削除をステージングするために使用されます。以前は次のものと同等でした。

git add .; git add -u

この動作は今回変更されて -u/-A フラグはソース ツリー全体に作用し、git commit-a や既にこのように動作している他のコマンドと整合させています。これは後方互換性のない変更ですが、恐らく影響は少ないことが予想されます。

.gitignore で使用すると役立つ **/ パターン

愛用されている .gitignore ファイルに新しい役立つ **/ パターンが追加されて、0 以上のレベルのサブディレクトリにマッチします。たとえば、"foo/**/bar" は "foo" 自体または "foo" のサブディレクトリにある "bar" にマッチします。

これに加えて、Git には .gitignore 設定をデバッグするのに使用する check-ignore コマンドが備わりました。使用例をご覧ください。

[4967] λ # git check-ignore --verbose dist/ .gitignore:1:distdist/

改善された候補表示スクリプト

コマンド ラインを使用していて git シェル入力補完をセットアップしているのであれば、その便利さには既にお気付きだと思います。このリリースでは補完スクリプトの機能が向上していて、git add する際の候補ファイル表示から、未修正パスなどの関連のないファイルを除くようになっています。

色付きエイリアスとスクリプトの相互作用

以前、エイリアスについての投稿で紹介したように、私は色をふんだんに用いた log コマンドを使用しています。このリリースではターミナルに出力しない際は色付けを自動的に無効にする気のきいた微調整が施されており、スクリプトで Git コマンドを使用する際には重宝します。

使用方法は、次のように auto を色指定の先頭に付け加えるだけです。

%C(auto,blue)Hello%C(auto,reset)

git log の祖先グラフと combined diff 出力の連携が実現

-p を追加して、combined diff 出力を表示しようとする場合、git ログの --graph 出力はうまくいかなかったものです。今回、それが期待どおりに動作するようになりました。

git log -p --cc --graph

ローカルとリモートの各ブランチ間の同期ステータス表示が向上

これは実際には 1.8.1 リリースのものですが、それでもすっきりしています。

"git checkout" でブランチをチェック アウトする際に、新しいブランチがビルドするリモート追跡ブランチに対してどれくらい遅れて (または進んで) いるかが通知されます。メッセージでは、プッシュまたはプルして同期する方法も示されるようになりました。これは advice.statusHints 設定変数で無効にできます。

結論

今回はこれで終了です。新機能をお楽しみください。そして、Twitter (@AtlDevTools) で感想をお知らせください。

Git を学習する準備はできていますか?

この対話式チュートリアルを利用しましょう。

今すぐ始める