gitのstage領域なんて不要だと思ってたが、やはり必要だった

いままでgitのstaging領域(index)は無駄に概念を複雑にしているだけで、コミット時にコミットに含めるファイルを選択するだけでいいじゃないかと考えていたが、TortoiseGitで実際に「stage領域が無いgit」相当の操作をしてみると、やはり必要だと判った。
具体的にはamendコミット時に、前回コミットで修正されたファイルを作業コピーでも修正していた(それプラスまったく関係ないファイルの修正もammendに含めたい)場合に
・前回コミットの修正は含める
・作業コピーの修正は含めない
というコミットを行いたい時、stage領域が無いとそれが行えない。



stage領域を使う方式だと
・stage領域に前回コミットの修正は含める(何もしなくても最初から含まれている)
・stage領域に作業コピーの修正は含めない(git add しない)
として状態を表現して、コミットが行える。

コミット時にコミットに含めるファイルを選択する方式だと、
・コミットに含めると現在の作業コピーの状態が前回コミットに上書きされてしまう
・コミットに含めないと前回コミット内容からそのファイルが消えてしまう
という問題が起きてしまう。