Git还没有恢复早先的状态

jje*_*jei 2 git git-revert

所以很久以前我在我的项目中添加了一个带有一组文件的文件夹abc,并使用修订版xyz进行了提交.经过多次提交,有人用git rm -r abc删除了该文件夹.在此之后,还有很多提交.

现在我需要取回文件夹abc.我做

git revert xyz
Run Code Online (Sandbox Code Playgroud)

在此之后,我可以找到文件夹xyz,但不存在提交xyz中添加的所有文件.

我究竟做错了什么?我不想重置,因为我想保持提交xyz和现在之间的历史.

Amb*_*ber 5

你真正想要的是这个:

git checkout xyz -- abc
Run Code Online (Sandbox Code Playgroud)

这就是说"让我在路径中获取这些东西的版本abc,就像它在提交中一样xyz".这样,您将使文件夹恢复到您提交的状态,但是您不会触及任何其他可能已经修改过的文件.

(本--,如果你明确地指定的承诺,除非提交的名称恰好也是在项目中的文件名是没有必要的.举例来说,如果你想看看一个名为文件的版本HEAD从提交指出master,你需要这样做git checkout master -- HEAD.[只需节省时间,不要为你的分支命名,并标记与文件相同的东西.])

你不想要git revert xyz因为那是为了创建反转其他提交的提交,你显然不想反向你首先添加文件.