あなたの質問の私の理解はこれです:
git
いくつかのファイルとディレクトリを含むリポジトリがあります。
- 最初にすべてを追加しました(
git add -A
)。おそらくあなたもコミットしました。
- リポジトリからディレクトリを削除し(
rm -rf dir
)、変更を追加します(git add -A
)。私はあなたがそれからコミットすると思います。
この場合、はい、リポジトリからディレクトリを削除しました。git-add
マニュアルページから:
-A, --all
Like -u, but match against files in the working tree in addition
to the index. That means that it will find new files as well as staging modified
content and removing files that are no longer in the working tree.
git add -A
追加、削除、ロットなど、すべての変更をリポジトリに追加します。
だから私はgitを使用してファイルの削除を追跡する方法がないと思いますか?
これが何を意味するのかわかりません。gitからのファイルの削除を追跡できます。のmanページを読んでくださいgit-rm
。または、ファイルを削除してから実行するgit add -A
とgit
、削除されたファイルがインデックスに追加され、削除をコミットできるようになります。したがって、削除が追跡されます。
また、gitaddを実行するとします。私は自分のディレクトリを失っていなかっただろう、私は正しいのだろうか?
git
ディレクトリの削除をインデックスにステージングすることはなかったでしょう、正しいです。ただし、ディレクトリを削除したため、ディレクトリはまだgit
作業ディレクトリから削除されています。
たとえば、昨日コミットしたときに3つのファイルを削除しましたが、すべてのファイルとディレクトリの昨日のバージョンに戻りたい場合、削除されたファイルが表示されますか?
リポジトリにファイルを追加します。git add file; git commit -m "added file"
。このコミットを呼び出しましょうA
。
次に、そのファイルを削除し、変更をリポジトリにコミットします:(rm file; git add -A; git commit -m "Deleted file"
別の方法はgit rm file
)。このコミットを呼び出しましょうB
。
コミットをチェックアウトするB
と、ファイルはそこにありません。あなたはそれらを削除しました、そしてコミットはこれを反映しています。
コミットをチェックアウトするA
と、ファイルがそこにあります。そのコミットにはファイルが含まれています。
あなたの質問に答えるには:
たとえば、昨日コミットしたときに3つのファイルを削除しましたが、すべてのファイルとディレクトリの昨日のバージョンに戻りたい場合、削除されたファイルが表示されますか?
いいえ。削除をコミットしたため、昨日のコミットではファイルは表示されません。ただし、昨日のコミットの前にコミットをチェックアウトすると、ファイルはそこにあります。