06 git stash 的理解

5590阅读 0评论2013-02-25 garfield_trump
分类:项目管理

1,git stash 保存当前工作进度;

git stash [save [--patch]  [-k|--[no-]keep-index]  [-q--quiet]  [] ]

--patch : 参数会显示工作区和 HEAD 的差异,通过对差异文件的编辑,排除无关内容,决定在进度中最终保存的工作区的内容。

-k 或者 --keep-index :参数在保存工作进度后将不会重置暂存区,默认会将暂存区和工作区重置。

:即保存工作进度的时候附加说明,以便日后恢复。

1.1 git stash list 查看保存的进度:

1.2 git stash save 保存当前工作进度并且附加说明:


git stash save "stash new file a3 a4."


1.3 git stash -k 保存当前工作进度同时保持暂存区不被重置:

1.3.1 先查看当前状态:



1.3.2 git stash -k 保存当前工作进度:

由此验证保存工作进度后,暂存区没有被 rest,但工作区则被 reset 到最后一次执行 git add 的状态,即暂存区状态。


2,git stash pop 恢复之前工作进度:

git stash pop [--index] []

2.1 git stash pop --index stash@{0} 恢复最近一次工作进度 stash{0}


选项 “ --index ” 除了恢复工作区之外,还尝试恢复暂存区。

2.2 git stash pop stash@{0}恢复最近一次工作进度:


对比上一次的工作进度恢复,这一次的恢复因为没有加 “--index” 参数,所以恢复后并没有恢复 newFile_a3.txt 在暂存区的修改。

3,放弃之前保存的工作进度:

git stash drop [] #放弃指定的工作进度

git stash clear #清除所有已经保存的工作进度










上一篇:对于驱动调试有用的两个小工具(devmem2、devkmem)
下一篇:Linux下查看socket状态 netstat升级版ss