'rm'+'svn update'等同于Git?

时间:2009-07-22 05:38:50

标签: svn git

在svn工作目录中,我可以

  1. 对工作目录中的文件进行一些更改
  2. 删除'rm在该目录中的所有源文件所做的所有更改,但保留我的.svn目录)
  3. 使用'svn update'检索主干应该使用的内容,svn会将所有源代码下载回我的工作目录。
  4. git中是否有等效的命令?你能告诉我怎么做吗?

3 个答案:

答案 0 :(得分:9)

git reset --hard

这是“git reset --hard HEAD”的同义词,应该是您要找的。

请谨慎使用,因为它会有效删除工作目录中的任何当前更改。请参阅“Undoing in Git

注意:在评论和Charles Bailey中提及in his answer时,这不会删除未跟踪的文件。
因为git clean是正确的工具。查看他的answer for more,以及SO问题“How do you remove untracked files from your git working copy?”或Git-Ready文章“cleaning up untracked files”。

  

因此,如果我们想进行大规模清理:

$ git clean -n -d -x
  

该命令将清除项目.gitignore文件下列出的文件,并删除不需要的其他文件和目录。
  在运行git clean时一如既往地使用预防措施,并确保仔细检查你真正删除的内容。

注意,您可能需要move your untracked files instead

答案 1 :(得分:4)

  1. 您希望丢弃对工作目录中跟踪文件的所有更改
  2. 您位于工作目录的根目录

    $ git checkout。

  3. 这将以递归方式检出(恢复)从当前分支(头)中的最后一次提交中跟踪的每个文件。

答案 2 :(得分:2)

假设您是工作副本的根。

你想做一个干净的去除任何未跟踪的文件,先做一个干运行,以确保它不会先破坏任何东西。 (您可能想要调查目录(-d)并且也使用忽略规则(-x)选项。)

git clean -n

然后运行'真实'。

git clean -f

然后从索引中查看所有跟踪文件的新未修改文件。

git checkout .