在 svn 中,可以svn revert ./*
在其中还原当前目录并且仅还原当前目录。
svn revert
仅恢复当前目录的 git 相当于什么?
我知道有git reset --hard
,但它会还原所有内容,而不仅仅是当前目录。
我将如何仅恢复 git 中的当前目录?
在 svn 中,可以svn revert ./*
在其中还原当前目录并且仅还原当前目录。
svn revert
仅恢复当前目录的 git 相当于什么?
我知道有git reset --hard
,但它会还原所有内容,而不仅仅是当前目录。
我将如何仅恢复 git 中的当前目录?
就像@vcsjones 所说,这里的解决方案是git checkout
:
git checkout <refspec> -- path/to/directory # or path/to/file
<refspec>
例如,可以在哪里be HEAD
,即当前的工作提交。请注意,该checkout
命令的这种用法会影响工作树,但不会影响索引。
git revert
用于“恢复提交”,因此,不应理解提交从树中消失(它会对历史造成严重破坏——如果你愿意,请查看git rebase -i
)。恢复的提交包括将作为参数给出的提交的所有更改应用到树,并使用更改创建一个新提交(使用默认提交消息,您可以修改)。
当我还是一个 git 新手(并且害怕终端)时,我发现最简单的方法是:
如果您想从特定目录递归执行:
git checkout -- ./*
git checkout -- mydir/*