0

リポジトリにディレクトリ ツリーがあります。git add -A初めてやります。

ファイルを含むディレクトリを誤って削除し、次のことを行います。

git add -A

レポのディレクトリ全体も失います。または、失われたディレクトリを取得する方法はありますか?

またgit add .、ディレクトリを失うことはなかったと思いますが、正しいでしょうか? gitを使用してファイルの削除を追跡する方法はないと思いますか?

たとえば、昨日コミットしたときに 3 つのファイルを削除しました。すべてのファイルとディレクトリの昨日のバージョンに戻りたい場合、削除されたファイルが表示されますか?

4

1 に答える 1

2

あなたの質問の私の理解はこれです:

  1. gitいくつかのファイルとディレクトリを含むリポジトリがあります。
  2. 最初にすべてを追加しました(git add -A)。おそらくあなたもコミットしました。
  3. リポジトリからディレクトリを削除し(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 -Agit、削除されたファイルがインデックスに追加され、削除をコミットできるようになります。したがって、削除が追跡されます。

また、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つのファイルを削除しましたが、すべてのファイルとディレクトリの昨日のバージョンに戻りたい場合、削除されたファイルが表示されますか?

いいえ。削除をコミットしたため、昨日のコミットではファイルは表示されません。ただし、昨日のコミットの前にコミットをチェックアウトすると、ファイルはそこにあります。

于 2012-08-05T09:00:49.587 に答える