王的男人
分类: 项目管理
2013-03-29 22:29:50
原文地址:06 git stash 的理解 作者: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 #清除所有已经保存的工作进度