しばしば、作業中のことを中断して、別の作業に取り掛かる必要が出てきます。例えば、深刻な問題に緊急に対処する必要があり、新しい機能の開発を中断しなければならない場合があります。可能であれば、これまでの変更をコミットしてから緊急の問題に取り掛かるべきですが、多くの場合、それらの変更はビルドを壊したり、まだコミットする準備ができていないことがあります。
そのため、ローカルの変更をまだコミットできない場合、緊急の問題に取り組んでいる間、それらを脇に置いておく必要があります。シェルビング機能は、まさにそれを実現するのに役立ちます。ローカルの変更をシェルフに保存し、ワーキングコピーをクリーンな状態に戻して、問題に取り組むことができます。緊急の問題が終わり、それらの変更をコミットしたら、シェルフに保存した作業をアンシェルブして、以前のタスクの作業を再び続けることができます。
このために、2つの新しいコマンドが実装されています。1つはシェルビング用、もう1つはアンシェルビング用です。
ローカルの変更をシェルブするには、ワーキングコピーを選択し、
→ を使用します。次のダイアログでは、シェルブするファイルを選択し、それらを保存する名前を指定できます。
既存のシェルフを選択すると、そのシェルフの新しいバージョンが作成されます。新しい名前を指定すると、選択したファイルに対して新しいシェルフが作成されます。
ボタンをクリックすると、シェルフが作成され、ワーキングコピーファイルはクリーンな状態にリセットされます。 ボタンをクリックすると、シェルフが作成されますが、ローカルの変更は保持されます。
変更をアンシェルブするには、
→ を使用して、アンシェルブダイアログを表示します。このダイアログには、シェルブされたすべてのアイテムのリストが表示されます。適用するシェルブされたアイテムとバージョンを選択して、 をクリックします。
シェルフは純粋にローカルクライアントの機能です。シェルフの作成と削除は、リポジトリや他の人のワーキングコピーには影響を与えません。
シェルビング機能は、まだ実験的
としてマークされています。
これは、シェルビングが宣伝どおりに機能する一方で、まだ大幅に改善および作業が進められている段階にあることを意味します。また、作成したシェルフに上位互換性があるという保証はなく、将来のバージョンではそれらを使用できない可能性があることも意味します。そしてもちろん、UIも将来のバージョンで新しい機能や動作に対応するために変更される可能性があります。