1

git reset コマンドを理解しようとしています。ファイル file_1 を含む最初の commit_A があります。

  • ここで、ステージングしていない作業ディレクトリに file_2 を追加しました。今実行するgit reset --hardと、file_2 は作業ディレクトリに残ります。

  • しかし、file_2 をステージングしてから実行するgit reset --hardと、file_2 はステージングされず、作業ディレクトリからも削除されます。

2 番目のケースでは file_2 が作業ディレクトリから削除され、最初のケースでは削除されないのはなぜですか?

4

1 に答える 1

5

最初のケースでfile_2は、ステージングしたりコミットに埋め込んだりせずに作業ディレクトリに追加しただけなので、追跡されません。実行git reset --hardしても、これらのファイルは git によって追跡されないため、影響はありません。

2 番目のケースでは、(ステージングによって) 追跡を開始しましfile_2た。つまり、実行git reset --hardすると、を含む作業ディレクトリがリセットfile_2され、ステージング領域と作業ディレクトリの両方から削除されます。

また、 reset の役割に関するこのよく説明された記事(例が満載) を詳しく調べることをお勧めします。

于 2013-08-22T19:15:49.623 に答える