1

保存されたzipファイルからgitへの開発の歴史的記録を構築しています。git add .選択したファイルがコミットされるように、ステージング領域にファイルする必要があることに満足しています。ここまでは順調ですね。

ただし、現在、最初の(解凍された)ファイルセットを追加し、コミットしてから、ディレクトリとコンテンツを削除してから、次のセットを解凍し、追加してコミットするという状況にあります。多くの場合、さまざまなディレクトリ名が使用されます。

私の理解の問題は、いくつかのコミットを削除したディレクトリ/ファイルの(Git Gui)を示す「ステージングされていない変更」が表示されることです。gitが現在のファイルのスナップショットを取得することを理解したので、そこに削除されたファイルが含まれていてはなりません。

それで、私の最近のコミットには、それらの削除されたファイルのコピーが(ツリーに)含まれていますか?プレーン(または同等git rmのWindows)の代わりに使用する必要があるのはいつ/なぜですか?rmメッセージを無視する必要がありますか?つまり、gitが競合する削除と追跡のメカニズムをどのように処理するかについての説明はありますか?

4

2 に答える 2

4

を使用して単純に削除してrmからコミットすると、その削除はステージングされないため、git はそのファイルがなくなったという事実を無視します。

git にそのファイルの削除を認識させ、それに応じてリポジトリを更新させたい場合は、ファイルを作成する必要がgit rmあります。あなたの場合、git add -A .古いものを削除して解凍すると、新しいものが必要なものになります。すべての追加、削除、および変更をステージング領域に追加します。

現在の計画では、不要なファイルがリポジトリに多数あることは確かです。あなたの最善の策は、次の戦略を使用して最初からやり直すことです。

  1. レポを作成する
  2. ファイルを解凍する
  3. git add -A .
  4. git commit
  5. すべてのファイルを削除
  6. 2から繰り返す
于 2011-07-28T14:32:51.347 に答える
1

ご想像のとおり、最近のコミットには削除されたファイルのコピーが含まれていました。

試してみてくださいgit add -A .、それは同様に削除をステージングします。

理由を知りたい場合は...ステージング領域が最もよく使用されるため、gitには「ステージ領域」の概念があり、変更の一部のみをコミットできます-これにより、パッチの分割が容易になります。

于 2011-07-28T14:27:06.463 に答える