2017-06-16 16 views
0

ファイルが実際にインデックスから削除されたときに、git rmのコマンドを実行して、プロジェクトからファイルを削除しますか?削除をコミットまたはgit rmが実行されたとき、それが削除されたとき、それは削除されていますか?私が理解からをすると、ファイルがインデックスから削除されますか?

、gitのRMは、次の手順を実行します

  1. 削除ファイルインデックス
  2. 削除ファイルから作業ディレクトリ
  3. から

ファイルの削除をコミット私はよファイルが最初からインデックスから削除されているのか、削除がコミットされたのかは不明です。また、これらの手順は正しいですか?

答えて

4

それはすぐに起こりませんが、この時点で、コミットは何もあり。つまり、手順1と2のみが適用されます。インデックスについて考える

良い方法は、それがすべてで、または本当に、コピーの第三コピーだし、作業ツリーは第三であるということです。

  • HEADまたは時々@(としても知られている)別名、現在のコミットを:それはいつでも、あなたが持っている、です。これはコミットであるため、まったく変更することはできません。
  • A キャッシュ別名、ステージング領域別名、インデックス別名、次のコミット提案。 (なぜ3人の名前?まあ、それはGitがあります。:-))あなたはそれを変更することができますので、これは、ない、ないまだコミット-aです。しかし、それは特殊なGit形式になっています。そこで、そこに保存されているファイルの表示や操作は本当に難しいです。
  • あなた(とあなたのコンピュータの残りの部分は)彼らと働くことができる形式のファイルを持っている作業ツリー、。作業ツリーには、の非トラックファイルを含めることもできます(一部は無視され、非トラッキングも可能です)。インデックスには何も定義されていないので、インデックスには未追跡ファイルが含まれません。

ここでは、両方向のファイルをコピーすることができます。HEADからインデックス、インデックスから作業ツリー、または作業ツリーからインデックスにコピーできます。しかし、コミットは決してに変更することができないので、をインデックスからコピーしてHEADに戻すことはできません。代わりに、を新規に作成するインデックスから新しいコミットへのコミットコピー。

+0

'rm'だけを使用して作業ディレクトリからファイルを削除した場合'git rm'を実行すると、作業ディレクトリのファイルだけが削除されますが、インデックスにはまだ存在します。 –

+0

Gitはこれについて不平を言っておらず、次のコミットにファイルがあります! – torek

+0

'rm file'(作業ツリーから出てきても' HEAD'とインデックスに残っているように) 'git add file'を実行した場合、' git add'ステップはファイルをインデックスから削除します(!)。 'git add --all'を使うと、ここでGit 1.xと2.xの動作が変わったという微妙なコーナーケースがあります。非常に紛らわしいので、インデックスと作業ツリーがどのファイルにどのファイルにマッチしているのかを知ることは、一般的に賢明です。 – torek

0

あなたがgit rmを実行すると、それはインデックス&作業ディレクトリからファイルを削除します。

リファレンス - git-rm

関連する問題