それぞれのコンセプトは?
チェックインする代わりに変更を棚上げしてもよいのはいつですか?
Shelved は、後で作業するために変更が保留されていることを意味します。
チェックインとは、変更がチームの他のメンバーに利用可能になり、ビルドに組み込まれ、最終的に出荷されることを意味します。
とても違う。シェルビングは、タスクが完了していないときにコンテキストを切り替えるためのツールと考えてください。チェックインは、完了したことを意味します (少なくともその一部)。
行った変更を保存したいが、現在作業中の更新なしで展開したい他の変更(おそらくバグ修正)を行うために前のバージョンに戻る必要がある場合は、変更を保留します。通常はかなり定期的にチェックインしているので、これはまれな出来事であることがわかります。たとえば、QAボックスにデプロイしたばかりで、すぐにエラーが見つかりました。その日の変更を棚上げしてQA展開バージョンに戻し、更新を行ってから、変更の棚上げを解除します。必要に応じて2つをマージします。それより長くなると、おそらく以前のバージョンをチェックして、代わりにブランチを探すことになるでしょう。しかし、棚がもっと便利であることが証明された他の経験を聞いてうれしいです。
他のユーザーはシェルフセットを検索してダウンロードできるため、レビューのためにコードを渡すのに適した方法です。ただし、すでにチェックアウトしているコードファイルをアンシェルフしようとするとエラーが発生するため、クリーンな環境を用意する必要があります。
チェックインできない大きな作業をしている場合は、1日の終わりに変更を棚上げすることがよくあります。そうすれば、PCが一晩で故障した場合でも、サーバーにバックアップがあります。
ダーシーはそれを見つけます。また、棚は、ほとんどの場合公開されていないプライベートブランチと考えることもできます。チェックインされたコードを削除するのとは異なり、シェルフセットを完全に削除することもできます。シェルフセットを削除すると、永久に失われます。