Git でコミットする前にステージングが必要なのはなぜですか? 質問する

Git でコミットする前にステージングが必要なのはなぜですか? 質問する

私はバージョン管理の初心者ですが、「コミット」とは基本的に、作業中の新しい「現在の」バージョンを更新しながらバックアップを作成することだと理解しています。

私が理解できないのは、実際的な観点からステージングが何のためにあるのかということです。ステージングは​​名前だけ存在するものなのか、それとも目的を果たすものなのか? コミットすると、とにかくすべてがコミットされるのですよね?

編集: 用語を混同しているかもしれません。「ステージングされた」ファイルは「追跡された」ファイルと同じものですか?

ベストアンサー1

コミットすると、インデックスの変更 (「ステージングされた」ファイル) のみがコミットされます。これには多くの用途がありますが、最も明白なのは、作業中の変更をより小さな自己完結型の部分に分割することです。おそらく、機能を実装しているときにバグを修正したのでしょう。git addそのファイルだけ (またはgit add -pファイルの一部だけを追加) をコミットし、そのバグ修正をコミットしてから、他のすべてをコミットすることができます。 を使用する場合は、コミットの直前にすべてをgit commit -a強制的にコミットするだけです。ステージング ファイルを活用したい場合は、addを使用しないでください。-a

複数のコマンドを使用して、ステージングされたファイルを中間作業コピーとして扱うこともできます--cached。たとえば、git diff --cachedはステージとの違いを表示するHEADので、他の作業中の変更を混ぜることなく、コミットしようとしている内容を確認できます。

おすすめ記事