#### 删除本地多余的目录和文件
~~~
$ git clean -nd
~~~
查看哪些文件和目录会被删除
~~~
$ git clean -fd
~~~
真正开始强制删除多余的目录和文件
#### 保存和恢复工作进度
~~~
$ git stash
~~~
保存当前的工作进度,会分别对暂存区和工作区的状态进行保存
~~~
$ git stash list
~~~
显示进度列表
~~~
$ git stash pop [--index] [<stash>]
~~~
如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。如果提供<stash>参数(来自list显示的列表),则从该<stash>中恢复,恢复完毕也将从进度列表中删除<stash>。--index除了恢复工作区的文件外,还尝试恢复暂存区
~~~
$ git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [<message>]]
~~~
git stash命令的完整版,即如果需要在保存工作进度时使用指定的说明,必须使用如下格式:git stash save "message..."
使用参数--patch会显示工作区和HEAD的差异,通过对差异文件的编辑决定在进度中最终要保存的工作区的内容,通过编辑差异文件可以在进度中排除无关内容。
使用-k或--keep-index参数在保存进度后不会将暂存区重置,默认会将暂存区和工作区强制重置
~~~
$ git stash apply [--index] [<stash>]
~~~
除了不删除恢复的进度之外,其余与git stash pop一样
~~~
$ git stash drop [<stash>]
~~~
删除一个存储的进度,默认删除最新的进度
~~~
$ git stash clear
~~~
删除所有存储的进度
~~~
$ git stash branch <branchname> <stash>
~~~
基于进度创建分支