41

svnではsvn revert ./*、現在のディレクトリと現在のディレクトリのみが元に戻されるようにすることができます。

svn revert現在のディレクトリのみが元に戻されるのと同等のgitは何ですか?

があることは知ってgit reset --hardいますが、現在のディレクトリだけでなく、すべてが元に戻ります。

gitの現在のディレクトリだけを元に戻すにはどうすればよいですか?

4

4 に答える 4

77

@vcsjonesが言うように、ここでの解決策は次のgit checkoutとおりです。

git checkout <refspec> -- path/to/directory  # or path/to/file

<refspec>たとえば、ここでHEAD、つまり、現在の作業コミットを指定できます。このcheckoutコマンドの使用法は作業ツリーに影響しますが、インデックスには影響しないことに注意してください。

git revertは「コミットを元に戻す」ために使用されます。これにより、コミットがツリーから消えることを理解する必要はありません(履歴に大混乱をもたらす可能性があります。必要に応じて、を参照してくださいgit rebase -i)。元に戻されたコミットは、逆に、引数として指定されたコミットからのすべての変更をツリーに適用し、変更を使用して新しいコミットを作成することで構成されます(デフォルトのコミットメッセージは変更可能です)。

于 2013-01-02T16:23:09.827 に答える
35

元に戻すフォルダーに移動して、次の操作を行います。

git checkout -- .

この回答で詳細を参照してください: https ://stackoverflow.com/a/16589534/207661

于 2017-02-05T08:49:18.963 に答える
7

私がgit初心者だったとき(そしてターミナルを恐れていたとき)、最も簡単な方法は次のとおりでした。

  • 特定のサブディレクトリを元に戻すブランチに切り替えます
  • デスクトップに戻したいサブディレクトリをコピーします
  • ブランチに戻ります
  • gitディレクトリで置き換えたいサブディレクトリをデスクトップにコピーしたもので上書きします
于 2016-02-25T15:26:38.283 に答える
0

特定のディレクトリから再帰的に実行する場合:

git checkout -- ./*
git checkout -- mydir/*
于 2020-11-23T18:41:52.627 に答える