git stash的相关使用,当我们遇到一个紧急bug需要处理,处理完了之后又需要紧急的提交上去,可是目前的工作内容还没有完成,不能在此时提交,想暂存起来。此时,git提供了git stash命令来解决这样的需求。
对git stash的详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| // 暂存当前状态 git stash => 后面可带参数 [save message] [-k|--no-keep-index] [--patch] // 使用save message 可以对进度添加备注,-k和--no-keep-index指定保存进度后,是否重置暂存区,--patch会显示工作区和HEAD的差异,通过编辑差异文件,排除不需要保存的内容,和git add -p 命令类似。 // 查看当前工作区和版本库区别 git diff HEAD => 此时若什么都没有输出,说明工作区被重置为HEAD指向内容了 // 显示已暂存列表 git stash list //恢复暂存区的工作区的进度 git stash pop =>命令后面可带参数 --index stash@{0} //不删除已恢复的进度,其他同git stash pop git stash apply [--index] [<stash>] //删除某一个进度,默认删除最新进度 git stash drop [<stash>] // 删除所有进度 git stash clear // 基于进度创建分支 git stash branch <branchname> <stash>
|
以上就是使用git stash的常用命令了,可是有时候,我们可能会将缓存区的进度给删除了,然而会造成本地写好的工作进度全没了,这确实是一件很头疼的事情
So,下面再说说将删除后的进度恢复的常用git操作
1 2 3 4 5 6
| // 首先使用 git fsck --lost-found //然后使用git show <stash-id>查看是不是自己想要的进度, git show <stash-id> //如果是,那就可以执行下面的git merge进行恢复了 git merge <stash-id>
|
这样就能找回刚才一不小心给删除掉的工作进度了。
git常用命令之git checkout修改指定分支的指定文件
1 2 3 4
| git checkout origin/branch <filepath> // 例子 git checkout master // 切换回主分支 git checkout origin/dev src/js/../*.js // 将dev分支上的src/js/../*.js目录下的某个js文件覆盖到master
|