3

コミットを元に戻すためのテストとして、ローカル リポジトリにファイルをコミットしました。コマンドgit revert {hash}を実行すると、元に戻すメッセージが git の履歴に記録されました。Revert "Commit of file 1" This reverts commit {hash}

コマンドを実行するとすぐにgit revert、作業ツリー/スペースからファイルも削除されました。

  1. なぜファイルを削除したのですか?
  2. コマンドを実行して、削除されたファイルを回復しようとしましたgit checkout {hash} -- /path/to/recovery。ファイルは回復しましたが、それが正しい方法であったかどうかはわかりません。
  3. コマンドを実行するgit statusと、ファイル 1 が追跡されているがコミットされていないことがわかります。何故ですか?
4

2 に答える 2

3

あなたはおそらく を探していgit reset HEAD^ます。これにより、リポジトリが実行前の状態になったという意味で、最後のコミットが「元に戻されます」git commit

git revert一方、コミットのすべての変更を元に戻します。したがって、ファイルを作成したコミットを元に戻すと、そのアクションは元に戻されます -> ファイルは削除されます。

于 2013-07-02T09:47:12.823 に答える
1

復元によってファイルが削除された場合、元に戻したのは、最初にファイルを追加した{hash}のと同じであることを意味します。{hash}ファイルが失われることはありません。いつでもファイルを取り戻すことができgit checkout {hash} {file}ますgit checkout -b tmpbranch {hash}。これら 2 つのコマンドは異なることを行います。詳細については、git ヘルプを参照してください。

ファイルが追跡されていない理由は、実行したチェックアウト コマンドによって、現在のリビジョンにまだチェックインされていない新しいファイルが作成されたためです。

于 2013-07-02T02:05:16.807 に答える