赞
踩
要用到这个储藏功能一般都要用到分支,不然无法发挥其强大。
分支创建
1、创建分支
git branch dev
可能会结果如下
$ git branch dev
fatal: Not a valid object name: 'master'.
这个是因为你创建本仓库以来,还没有过一次commit,本地库还没生成master分支,也就无法识别你所在分支 “ master ” 是个什么鬼了。
这里跟你关联远程库出的问题是一样的原因。
创建并切换。
$ git checkout branch -b dev
2、stash的应用(栈,先进后出)
储藏:
$ git stash
带名字的储藏:
$ git stash save "this stash message"
查看储藏:
$ git stash list
应用最新储藏:
$ git stash apply
应用指定储藏
$ git stash list
stash@{0}: WIP on master: 2e951a2 add a
stash@{1}: On dev: two stash
stash@{2}: On master: one stash
$ git stash apply stash@{2} # 应用信息为“one stash”的储藏
删除指定储藏(不指定删除第一个):
$ git stash drop <stash_code>
删除全部储藏:
$ git stash clear
补充几点:
(1)stash的数据:
<1>储藏的文件: 工作区的修改(modified)、暂存区里的待提交(committed)
<2>不储藏: 未曾加入版本库的新增文件(untracked)、被忽略文件规则忽略的文件。
PS:关于未曾入库的文件,会在切换分支后继续存在于新的分支中保持untracked的状态。
(2)stash pop
上述的apply均可替换成pop,唯一区别是这条命令会在应用后删除储藏。
(3)- -index参数
$ git stash apply stash@{1} --index
$ git stash apply stash@{1}
储藏中也有已经添加到暂存区状态的文件,等待提交。
这两条命令
第一条,会保持储藏中的文件保留其暂存区状态,committed。
第二条,会将工作区和暂存区的文件都还原到工作区中,not staged。
stash的东西,差不多就这么多了。欢迎补充~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。