GitHubは公式ブログで、Gitの最新版「Git 2.38」の主要な新機能として、新しいリポジトリ管理ツール「Scalar」と、「git rebase」コマンドの新しい「--update-refs」オプションを取り上げて紹介した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
オープンソースの分散バージョン管理システム「Git」の最新版「Git 2.38」が、Gitプロジェクトから公開された。これを受けてGitHubは2022年10月3日(米国時間)に公式ブログで、Git 2.38の主要な新機能として、新しいリポジトリ管理ツール「Scalar」と、「git rebase」コマンドの新しい「--update-refs」オプションを取り上げて紹介した。
新しいリポジトリ管理ツールのScalarは、大規模なリポジトリに大きな影響を与える、パフォーマンス最適化などさまざまなGit機能のセットをまとめて構成したものだ。Scalarを使い始めるには、「scalar clone」コマンドで新しいリポジトリをクローンする。
$ scalar clone /path/to/repo
クローン対象を限定するスパースチェックアウト(sparse checkout)で開始したくない場合は、「--full-clone」オプションを使うことも可能だ。Scalarの推奨構成を既存のリポジトリに適用するには、以下のコマンドを実行する。
$ cd /path/to/repo $ scalar register
Scalarで構成済みの機能は次の通り。
Scalarの構成は、Gitに新しい機能(実験的なものも含めて)が導入されるのに合わせて更新される。Gitの最新機能を常に使うには、新しいリリースの導入後に「scalar reconfigure /path/to/repo」を実行し、リポジトリの構成を更新する(または、「scalar reconfigure -a」で、Scalarに登録されている全てのリポジトリを一度に更新する)。
大規模な機能を作成する際は、多くの場合、作業を複数のブランチに分割し、相互依存させるのが便利だ。
だが、前のブランチの履歴を書き換える必要がある場合、ブランチの管理が面倒になることがある。各ブランチは前のブランチに依存しているため、あるブランチのコミットを書き換えると、以降のブランチは、書き換えた後の履歴から切り離されてしまう。
Git 2.38では、この問題を回避できるように、git rebaseコマンドの新しいオプションとして--update-refsが用意されている。
このオプションを使えば、git rebaseコマンドにより、依存するブランチが適切に更新されるため、個々のブランチを手動で更新しなくても、履歴がそのまま残る。
リベースのたびにこのオプションを利用したい場合は、「git config --global rebase.updateRefs true」を実行する。
Copyright © ITmedia, Inc. All Rights Reserved.