新しい Git 1.8.3 について知っておくべきこと

Nicola Paolucci
Nicola Paolucci
リストに戻る

コマンド ラインで git を使っているにしても、Sourcetree のようなよく使われるツールを使用しているのであっても、また、Bitbucket Cloud でコードをホスティングしているのであっても、会社のファイアウォールの内側で Stash (現在の名称は Bitbucket Server) でホスティングしているのであっても、私のようなタイプの場合は、git の新しいリリースが発表されたときは、いつだってお祭り騒ぎです。- ウインク -

Git ユーザーにとってスムーズなアップグレード方法

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

  • もし OSX 上で homebrew を使用している場合は単に brew update && brew upgrade git とタイプするだけです(OSX 上で .gitignore を解析中に、直前に発見されたバグにより、homebrew はアップグレードをまだリリースしていません)。
  • Ubuntu ベースのディストリビューションを使用している場合は、魔法のような apt trick を使用してください (その他のディストリビューションについては、読者のみなさんの演習として残すことにします)
  • Windows の場合は、単純に新しいインストーラを実行してください (Windows ポートが少し遅れることがありますので、すぐに見つけられない場合はしばらくお待ちください)

git 1.8.2 に関する以前のメモについてはこちらをご覧ください。

このリリースで新しいものは?

いつものように、ロットは修正されていますが、このドロップは前のサイクルより多くパックされているようです。難しい話は抜きにして、次に、私の興味を引いたいくつかのことをお見せしましょう。

皆さん、色です、色がすごくなりました

コマンド ライン UI の改良は、いくつかのきちんとした更新によって続けられています。

  • git rebase セッション中、(contrib/completion/ 内の) プロンプト文字列ジェネレーターは合計いくつの変更があり、いくつ再生されたのかを示します。

  • git branch -v -v は、他の色 (color.branch.upstream、青をデフォルトに) と統合されているブランチ名に塗ることができるようになりました:

npaolucci:~/dev/projects/stash] main ± git branch -v -v
  1.3           3a7ec9d [origin/1.3] Merge pull request #765 from STASH-2808-...
  gmail-renders 128fe79 [origin/gmail-renders] made pattern DOT_IN_WORD...
* main        66865b0 [origin/main] Automatic merge from 2.4 -> main
  • git log --format%C(auto) トークンを見せるようになりました。ターミナル出力で %d (デコレーション) や %h (短いコミット オブジェクト名) などを解決するときに、色を使うように Git に伝えます。

  • git count-objects にはさまざまな大きな数字を Ki/Mi/GiB の単位で必要なスケールに合わせて表示するために --human-readable-H の選択肢があります。

[npaolucci:~/dev/projects/stash] main ± git count-objects -H
169 objects, 680.00 KiB

Help によるガイドのリストの表示

git help -g は利用可能なガイドをリスト表示する新しいフラグです。コマンド リストと同じように -a を付けるだけです。

[npaolucci:~/dev/projects/stash] main ± git help -g
The common Git guides are:

  attributes   Defining attributes per path
  glossary     A Git glossary
  ignore       Specifies intentionally untracked files to ignore
  modules      Defining submodule properties
  revisions    Specifying revisions and ranges for Git
  tutorial     A tutorial introduction to Git (for version 1.5.1 or newer)
  workflows    An overview of recommended workflows with Git

'git help -a' and 'git help -g' lists available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.

“三角” ワークフロー対応の強化

git は “三角” ワークフローに対応しました。デフォルトのプロセスが、いつもどこか1 か所からプルして、他の場所へプッシュするような状況のことです。それを行うために、設定変数 origin を新しい remote.pushdefault で上書きし、branch.❊.remotebranch.❊.pushremote で上書きできます。

revert、rebase および bisect のステータスの改善

git status が改善され、revert セッション、cherry-pick または bisect セッションの最中に報告されるようになりました。

追跡されないサブモジュールがとうとう実現しました!

もし私が以前書いた git submodule に関する記事をお読みでしたら、比較的簡単な操作が submodule コマンド ライン インターフェイスによりあまりうまくサポートされていなかったことをご覧になったでしょう。いい知らせがあります!

“このサブモジュールにはもう興味がない” ということを git submodule deinit により伝えられるようになりました。

その他に紹介しておきたいこと

  • 新しい --follow-tags オプションは、ブランチをプッシュするときに、git push に、関連する注釈付きタグをプッシュするよう伝えます。

  • 「世界の外からやってきたランダムな文字列を持っている。そんなオブジェクトが存在することを確かめる間、それを 40-hex オブジェクト名に変換したい。」と頼む良い方法はありませんでした。新しく導入された拡張子 ^{object}rev-parse --verify とともにその目的で使うことができます。

結論

今回は、これで終了です。メリットを享受し、更新の長いリスト内に見逃した価値のあるアイテムがある場合は、私に知らせてください。

いつもと同じく、DVCS を使いこなす方法をもっと知りたければ、@durdn で私、またはすばらしい @AtlDevtools チームをフォローしてください。

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

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

今すぐ始める