git与SVN更新的等价物是什么?
使用SVN,您可以删除本地文件(将其放入垃圾箱),并在删除后运行SVN update进行恢复。SVN客户机只需提取文件的一个新副本(目录中不会涉及任何其他内容) 我还没能用GIT解决这个问题git与SVN更新的等价物是什么?,git,svn,version-control,Git,Svn,Version Control,使用SVN,您可以删除本地文件(将其放入垃圾箱),并在删除后运行SVN update进行恢复。SVN客户机只需提取文件的一个新副本(目录中不会涉及任何其他内容) 我还没能用GIT解决这个问题 我在Windows上使用的是Tortoise Git,而“pull”或“fetch”不能还原文件。我不想再次签出整个存储库(克隆)…您可以通过组合使用命令来恢复所有已删除的文件。显然,这只适用于已删除但尚未提交删除的文件 所涉及的指挥链可能如下所示: git checkout -- $(git diff -
我在Windows上使用的是Tortoise Git,而“pull”或“fetch”不能还原文件。我不想再次签出整个存储库(克隆)…您可以通过组合使用命令来恢复所有已删除的文件。显然,这只适用于已删除但尚未提交删除的文件 所涉及的指挥链可能如下所示:
git checkout -- $(git diff --name-only --diff-filter=D)
git config --global alias.restore '!git checkout -- $(git diff --name-only --diff-filter=D)'
正如torek在注释git checkout
中已经解释的,恢复文件的命令是,有趣的部分发生在git diff
命令中。--name only
选项告诉diff
只打印更改文件的文件名,而--diff filter=D
会注意忽略除已删除的文件以外的所有文件
为了便于使用,您可以创建一个别名,该别名还允许您在CMD中使用该命令。创建别名可能如下所示:
git checkout -- $(git diff --name-only --diff-filter=D)
git config --global alias.restore '!git checkout -- $(git diff --name-only --diff-filter=D)'
您必须在CMD上使用双引号(“
)
然后,您将能够通过git restore
轻松使用该命令
有关更多信息,请参阅和文档。您可以执行“检查修改”“然后您将看到已删除文件的列表。右键单击任何文件并选择“还原”如果您知道该文件名为
restore/me
,请使用git checkout--restore/me
。如果您不知道文件名,请使用git status
查找文件名。@torek:谢谢。它可以在cmd提示符下工作,但不能在tortoisegit上工作。我必须输入文件名,这很烦人。在SVN中,如果有任何文件丢失(因为我删除了它们),那么SVN更新将恢复所有文件…在Tortoise GIT中我必须采取的等效操作是什么?我不使用Tortoise GIT,所以我不知道。Git有重设--hard,但这是完全不同的:它意味着“使索引和工作目录都匹配给定的提交,并将分支移动到该点。”