典型的な Git ワークフローは、(作業ツリー内のファイルを変更) -> (インデックスを で変更git add/rm/etc
) -> (実行git commit
) の 3 ステップのプロセスであることを理解しています。
しかし、なぜ Git は作業ツリーをステージング領域として扱わないのでしょうか? たとえば、ファイルを変更すると、特にステージングしないように git に指示しない限り、コミットのために自動的に「ステージング」されます。これは、「オプトイン」ではなく「オプトアウト」のアプローチです。作業ツリー内のファイルの 99% がコミットされるため、これは理にかなっています。また、後でスタッシュするgit stash
のではなく、作業ツリーから一時的なブランチを作成するだけで済むため、メカニズム全体が冗長になります。save
apply
作業ツリーとインデックスを分離する正当な理由がある場合は、それを聞いてみたいです... おそらく、まだ Git について十分に理解していないという事実から、私の混乱が生じているのでしょう。