我有2个分支:主|设计
在设计工作中,我做了一个隐藏,然后切换到master,做了一些调整。切换回设计,并做了一个隐藏应用,只失去我在设计分支的所有更改。
我希望我所有的工作都在一个藏起来,因为我没有清除或删除这些。
如果我做一个收藏清单,我会得到4个结果:
stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust
如果我尝试git stash应用f2c0c72,我得到一个错误:
fatal: Needed a single revision
f2c0c72: no valid stashed state found
我如何应用特定的收藏?
从2.11版本开始,这就非常简单了,你可以使用N个堆栈号,而不是说“stash@{N}”。
所以现在不用:
git stash apply "stash@{n}"
你可以输入:
git stash apply n
例如,在你的列表中:
stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust
如果你想应用stash@{1},你可以输入:
git stash apply 1
否则,即使你的目录在1.7.5.1之后有了一些更改,你也可以使用它,但你必须确保stash不会覆盖你的工作目录更改,如果它覆盖了,你会得到一个错误:
error: Your local changes to the following files would be overwritten by merge:
file
Please commit your changes or stash them before you merge.
在1.7.5.1之前的版本中,如果工作目录发生更改,它将拒绝工作。
Git发布说明:
发行说明2.11
在命名单个元素时,用户总是必须说“stash@{$N}”
在隐藏的默认位置,即refs/stash中的reflogs。的
“git stash”命令学会了接受“git stash apply 4”作为一个
简写为“git stash应用存储@{4}”
发布说明1.7.5.1
Git stash apply”用来拒绝工作,如果有任何变化
工作树,即使变更时没有与变更重叠
藏记录