如何恢复未提交的更改,包括文件和文件夹?
是否有一个git命令来恢复工作树和索引中的所有未提交的更改,还删除新创build的文件和文件夹?
你可以运行这两个命令:
# Revert changes to modified files. git reset --hard # Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`) git clean -fd 如果只想在当前工作目录中恢复更改,请使用
 git checkout -- . 
希望有所帮助。
使用“git checkout – …”放弃工作目录中的更改
 git checkout -- app/views/posts/index.html.erb 
要么
 git checkout -- * 
删除在git状态下对非挂起文件所做的所有更改
 modified: app/controllers/posts.rb modified: app/views/posts/index.html.erb 
一个不平凡的方法是运行这两个命令:
-   git stash这将移动你的变化到藏匿处,使你回到头的状态
-   git stash drop这将删除最后一个命令中创build的最新存储。
 git clean -fd 
没有帮助,新的文件仍然存在。 我所做的是完全删除所有的工作树,然后
 git reset --hard 
 请参阅“ 如何在git中清除我的本地工作目录? ”以获取build议以添加-x选项来清除: 
 git clean -fdx 
  注意 -x标志将删除Git忽略的所有文件,所以要小心(请参阅我参考的答案中的讨论)。 
 我想你可以使用下面的命令: git reset --hard 
 请注意,可能还有文件似乎不会消失 – 它们可能未经编辑,但git可能已经标记为由于CRLF / LF更改而被编辑。 看看你最近是否对.gitattributes进行了一些修改。 
 在我的情况下,我已经将CRLF设置添加到.gitattributes文件中,因此,所有文件都保留在“修改的文件”列表中。 更改.gitattributes设置使它们消失。 
安全而漫长的道路:
-  git branch todelete
-  git checkout todelete
-  git add .
-  git commit -m "I did a bad thing, sorry"
-  git checkout develop
-  git branch -D todelete
使用:
 git reset HEAD filepath 
例如:
 git reset HEAD om211/src/META-INF/persistence.xml 
我通常用这种方式运作良好:
 mv fold/file /tmp git checkout fold/file