ここで重要な何かが欠けているかもしれませんが、現在持っているものを最初にコミットせずに別のブランチに切り替えたいです。現在の変更を使用hg update -C
して単純にドロップすることもできますが、これもやりたいことではありません。
私の問題は、同時に作業しているいくつかのブランチがあり、多数の小さなコミットで履歴を埋めたくないということです。場合によっては、小さな変更をコミットすることなく、現在のブランチを保存できる中間点はありますか。
ここで重要な何かが欠けているかもしれませんが、現在持っているものを最初にコミットせずに別のブランチに切り替えたいです。現在の変更を使用hg update -C
して単純にドロップすることもできますが、これもやりたいことではありません。
私の問題は、同時に作業しているいくつかのブランチがあり、多数の小さなコミットで履歴を埋めたくないということです。場合によっては、小さな変更をコミットすることなく、現在のブランチを保存できる中間点はありますか。
シェルブ拡張機能は、あなたが望むことを行うことができます:
ページから:
変更を一時的に隠します。棚上げしたい変更の正確な塊を選択できます。
hg棚
変更を一時的に隠します。すべてのハンクが自動的に選択されます。
hg shelve --all
変更を workdir に戻します。
hg アンシェルブ
--name オプションを使用すると、異なるシェルフで異なる変更を保留できます。
しかし、多くの小さなコミットの何が問題になっているのでしょうか? 変更が単独で機能する場合は、おそらくコミットする価値があります。正気を保ちたい場合、特に機能を後で他のリポジトリにマージする場合は、複数の問題をチェックインに入れたくありません。
既に述べたshelveオプションのオプションに加えて、履歴に小さな変更セットがたくさんある場合は、折りたたみ拡張機能を使用してそれらの小さな変更セットを取得し、それらを 1 つの大きな変更セットに結合できます。これは、タイプミスの修正など、まさにあなたが説明しているシナリオに最適です.
Mercurial 2.1 以降では、折りたたみ拡張機能はフェーズを尊重するため、公開した変更セットを誤って折りたたむことはありません。
ただし、一般的には、これらの小さな変更はすべて別の名前付きブランチで行い、満足したらデフォルト (または他の機能) ブランチにマージすることをお勧めします。
各ブランチを独自のクローンでチェックアウトします。何もしなくても切り替えることができます。