ステージングは、gitのコミットプロセスの前のステップです。つまり、gitでのコミットは、ステージングと実際のコミットの2つのステップで実行されます。
チェンジセットがステージング領域にある限り、gitを使用して好きなように編集できます(ステージングファイルを他のバージョンのステージングファイルに置き換える、ステージングから変更を削除するなど)。
壊れた比phor時間:
古いアパートから新しいアパートに荷物を運ぶためにムーバーを呼び出すシナリオを考えてみましょう。あなたがそれをする前に、あなたはあなたのものを通り抜けて、あなたがあなたとあなたが持っているものとあなたが捨てるものを決定し、バッグに詰めて、メインの廊下に置きます。引っ越し業者が来て、廊下から(すでに梱包されている)バッグを取り出して輸送します。この例では、ムーバーがあなたのものを手に入れるまでのすべてがステージングです:どこに行くか、それをどのように梱包するかなどを決定しますステージングの)。
技術的な観点から、ステージングは、すべての操作を失敗する可能性があるもの(ステージング)と失敗できないもの(コミット)に分割することにより、トランザクションコミットもサポートします。
ステージングが成功した後、gitのコミットはトランザクション的に実装されます。ステージングのいくつかのステップが失敗する可能性があります(たとえば、コミットする必要がありますが、HDDは99.9999%いっぱいであり、gitにはコミットを実行するスペースがありません)。これはステージングで失敗し(部分的なコミットによってリポジトリが破損することはありません)、ステージングプロセスはコミット履歴に影響しません(エラーの場合にリポジトリを破損しません)。