あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。
Gitの最新版、 バージョン2.17では、様々な改良と、細かな新機能が追加された。 新機能には、移動したコードの色付けや、履歴からのオブジェクト検索などが含まれている。
Git2.17ではdiff
の表示が改善され、移動した行のグループが色づけされるようになった。 これまでのGitでは、移動した行は他のコード変更と全く同じように表示されていた。 これからは、--color-moved
オプションを使うことで、移動しただけで変更のない行を、移動したうえで変更した行とは違う色にして確認できる。 移動した行に対する色の指定には、diff.colorMoved
を使用する。 --color-moved
オプションは以下のモードをサポートする。
no
: 移動した行を強調しない。zebra
: Gitは20文字以上の英数字のブロックを検出し、交互に色づけする。 2色の色の違いは、新しいブロックが検出されたことを示す。 2つのブロックの色づけの指定は、color.diff.{old,new}Moved
またはcolor.diff.{old,new}MovedAlternative
で行うことができる。dimmed_zebra
:zebra
と同様の表示だが、移動したコードのうち重要でない部分は淡色で表示される。plain
: ある場所で削除されているが、別の場所で追加されている行にはcolor.diff.newMoved
で指定した色をつけ、別の場所に追加されているが、検出箇所では削除されている行にはcolor.diff.oldMoved
で指定した色をつける。
log
およびdiff
コマンドで新たに加わった--find-object
オプションは、検索対象を、与えられたオブジェクトハッシュを参照するコミットに限定する機能を持つ。 Gitオブジェクトは、複数のコミットにあらわれる。最初に作られた時のコミットや、別のコミットで削除された時などである。 さらに、名前が変更されたりコピーされたりした場合は、複数のパスに対応することもある。 したがって、追跡するのは簡単ではない。 これからは、たとえば、以下のコマンドにより、特定のオブジェクトを参照する全てのコミットを抽出して表示することができる。
git log --find-object=<hash-here> -p
git rebase
およびgit am
のどちらも、新たに--show-current-patch
オプションをサポートするようになった。 このオプションは、コマンドによって適用された差分を表示する。 これは、コンフリクトによってリベースやマージが停止した時に有用である。 加えて、merge
コマンドは、“デフォルトではファストフォワードしない”というポリシーを少しだけ変更した。 これからは、タグをマージする時に、タグオブジェクトが/refs/tags
階層の通常の場所に置かれない場合は、ファストフォワードする。 これによって、ダウンストリームのコントリビュータが彼らのトピックブランチ(アップストリームからタグ付きリリースされている)を更新する時に、不必要なマージコミットが抑制される。
Git2.17には本記事にて紹介したよりもはるかに多くの変更がある。 公式のリリースノートを確認して欲しい。
Rate this Article
- Editor Review
- Chief Editor Action