先日リリースされたGit 2.10のpushコマンドには,より正確になった処理情報や追加オプションのサポート,--force-with-leaseの改良など,いくつかの便利な機能が追加されている。さらに,新しいオプションによってシグネチャがより便利になり,カラーリングスキーマに斜体や取り消し線が使えるようになった。
git pushの改善点は次のようなものだ。
-
git push --force-with-leaseで,他のコントリビュータによる同時pushによって上書きされず,新しいrefが生成されることを保証する。これにより,fetch後にmergeを行なわずにpushする場合,事前にupdate-refを使用する必要はなくなる。 -
混乱のリスクを軽減するため,
push中のgit gcによってサーバ上で生成されたメッセージには,クライアント側でremote:プレフィックスが付加されるようになった。git gcはファイルリビジョンの圧縮など,ハウスキーピングタスクを実行するコマンドの多くで,そのコマンドに続いて自動的に実行される。 -
新設された
--push-optionフラグによって,pre-receiveとpost-receiveフックの受信端に追加オプションを渡すことが可能になった。 -
git pushが,pushペイロードの受信後にサーバ上で動作するタスクについて,従来よりも正確なレポートを生成するようになった。GitHubには,この機能の詳細な説明が公開されている。
worktreeコマンドにも,いくつかの改良が加えられている。
-
git worktree addで,前のブランチの省略形として-が使用できるようになった。完全な表現では@{-1}になる。 -
git worktree lockによって,常時マウントされていないポータブルデバイスやネットワーク共有上にストアされている,リンクされたワークツリーが除外(prune)されることを防止できるようになった。これまではワークツリー内の管理ファイルとともに,開発者が手動でlockedという名称のファイルを作成することで,ワークツリーをロックする必要があった。
前述のように,Git 2.10ではシグネチャに関する作業が簡単になった。事実としてgit logなどのコマンドでは,64ビットの完全なキーIDが表示されるようになった。またgit logでは,新設されたコンフィギュレーション変数log.showSignatureを使用することで,デフォルトでシグネチャを表示できるようになった。この動作は,--no-show-signatureを使ってオーバーライドすることが可能だ。さらにgit pull --rebaseでは,--verify-signatureの指定が無効であることが,ユーザに警告されるようになった。
最後に,出力カラーのスキームの拡張によって斜体や取り消し線テキストがサポートされ,他のカラー指定オプションと組み合わせることが可能になった。
Git 2.10には他にも多数の新機能や改良,バグフィックスがあり,リリースノートに記載されている。
この記事を評価
- 編集者評
- 編集長アクション