それはすぐに起こりませんが、この時点で、コミットは何もあり。つまり、手順1と2のみが適用されます。インデックスについて考える
良い方法は、それがすべてで、または本当に、二コピーの第三コピーだし、作業ツリーは第三であるということです。
HEAD
または時々@
(としても知られている)別名、現在のコミットを:それはいつでも、あなたが持っている、です。これはコミットであるため、まったく変更することはできません。
- A キャッシュ別名、ステージング領域別名、インデックス別名、次のコミット提案。 (なぜ3人の名前?まあ、それはGitがあります。:-))あなたはそれを変更することができますので、これは、ない、ないまだコミット-aです。しかし、それは特殊なGit形式になっています。そこで、そこに保存されているファイルの表示や操作は本当に難しいです。
- あなた(とあなたのコンピュータの残りの部分は)彼らと働くことができる形式のファイルを持っている作業ツリー、。作業ツリーには、の非トラックファイルを含めることもできます(一部は無視され、非トラッキングも可能です)。インデックスには何も定義されていないので、インデックスには未追跡ファイルが含まれません。
ここでは、両方向のファイルをコピーすることができます。HEAD
からインデックス、インデックスから作業ツリー、または作業ツリーからインデックスにコピーできます。しかし、コミットは決してに変更することができないので、をインデックスからコピーしてHEAD
に戻すことはできません。代わりに、を新規に作成するインデックスから新しいコミットへのコミットコピー。
'rm'だけを使用して作業ディレクトリからファイルを削除した場合'git rm'を実行すると、作業ディレクトリのファイルだけが削除されますが、インデックスにはまだ存在します。 –
Gitはこれについて不平を言っておらず、次のコミットにファイルがあります! – torek
'rm file'(作業ツリーから出てきても' HEAD'とインデックスに残っているように) 'git add file'を実行した場合、' git add'ステップはファイルをインデックスから削除します(!)。 'git add --all'を使うと、ここでGit 1.xと2.xの動作が変わったという微妙なコーナーケースがあります。非常に紛らわしいので、インデックスと作業ツリーがどのファイルにどのファイルにマッチしているのかを知ることは、一般的に賢明です。 – torek