先日リリースされた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には他にも多数の新機能や改良,バグフィックスがあり,リリースノートに記載されている。
この記事を評価
- 編集者評
- 編集長アクション