「Git 2.38」で追加、巨大リポジトリ向けの管理コマンド「Scalar」は何ができる?:快適な設定を簡単に有効化できる
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」
新しいリポジトリ管理ツールの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に登録されている全てのリポジトリを一度に更新する)。
依存するブランチを「--update-refs」オプションでリベース
大規模な機能を作成する際は、多くの場合、作業を複数のブランチに分割し、相互依存させるのが便利だ。
だが、前のブランチの履歴を書き換える必要がある場合、ブランチの管理が面倒になることがある。各ブランチは前のブランチに依存しているため、あるブランチのコミットを書き換えると、以降のブランチは、書き換えた後の履歴から切り離されてしまう。
Git 2.38では、この問題を回避できるように、git rebaseコマンドの新しいオプションとして--update-refsが用意されている。
このオプションを使えば、git rebaseコマンドにより、依存するブランチが適切に更新されるため、個々のブランチを手動で更新しなくても、履歴がそのまま残る。
リベースのたびにこのオプションを利用したい場合は、「git config --global rebase.updateRefs true」を実行する。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
進化したKubernetesのシークレット管理「External Secrets Operator」――シークレットを外部ツールで管理してGit上でもセキュアに使おう
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、外部のシークレット管理ツールと連携して、KubernetesのSecretオブジェクトを管理する「External Secrets Operator」を紹介する(External Secrets Operator 0.10.4、Kubernetes 1.30に合うように更新)。国立情報学研究所(NII)が「メルカリ」データを無償提供 NIIがそろえるその他のデータセットは?
メルカリの研究開発組織であるmercari R4Dと国立情報学研究所は、大学などの公的な研究機関に向けてフリマアプリ「メルカリ」の出品に関するデータ「メルカリデータセット」を無償で提供する。GitHubのMarkdownで「数式」のネイティブレンダリングが可能に
GitHubで数式がネイティブにレンダリングされるようになった。ドル記号を区切り文字として使う。