By francis_hao Oct 29,2017
git stash 保存当前工作目录的修改
概要
git stash list [<options>]
git stash show [<stash>]
git stash drop [-q|--quiet]
[<stash>]
git stash ( pop | apply )
[--index]
[-q|--quiet]
[<stash>]
git stash branch <branchname>
[<stash>]
git stash [save [--patch]
[-k|--[no-]keep-index]
[-q|--quiet]
[-u]
[-a|--all]
[<message>]]
git stash clear
git stash create
描述
stash用来记录当前未提交的修改,并将当前环境变成上一次提交的状态,被stash记录保存的修改可以通过git stash list列出,通过git stash show检查,通过git stash apply重新载入。git stash等同于git stash save。
选项
save
git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [-u] [-a|--all] [<message>]]
保存当前的修改到一个新的stash,并且运行git reset --hard以回复上一次提交,<message>项是可选的,用来描述stash的状态。为了快速生成一个快照,可以只使用git stash。
save选项 | 说明 |
--keep-index | 已经add的改动会继续留在索引里。 |
-u|--include-untracked | 新添加的没有建立追踪的文件会被stash保存,之后会由git clean清除,使工作目录很干净 |
--all | 除了未建立追踪的文件,被忽略的文件也会由stash保存,并由clean清除 |
--patch |
list
git stash list [<options>]
列出当前的stash,形式如下:
stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation
stash@{1}: On master: 9cc0589... Add git-stash
show
git stash show [<stash>]
显示stash中的改变状态,如果<stash>省略,那么会显示最后stash的一个,show可以接受git diff的选项以显示对应的内容。
pop
git stash pop [--index] [-q|--quiet] [<stash>]
从stash list中移除一个stash,并引用在当前工作目录下,所做的是git stash add相反的内容。当前的工作目录需要和索引对应。当使用了--index选项时,会将保存的索引信息也应用到工作环境里。
apply
git stash apply [--index] [-q|--quiet] [<stash>]
类似pop,但是不从stash list中移除。
clear
清除所有的stash
drop
git stash drop [-q|--quiet] [<stash>]
从stash list中移除一个stash
本文由 刘英皓 创作,采用 知识共享署名-非商业性使用-相同方式共享3.0中国大陆许可协议 进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/7750997.html
参考
【1】伯乐在线 http://blog.jobbole.com/75348/ 让你的Git水平更上一层楼的10个小贴士
【2】man git-stash