git存储应用版本
我真的希望有人能build议。
我有2个分支master | devise
在devise工作,我做了一个藏匿,切换到主,做了一些调整。 切换回devise,并做了一个藏匿只适用于失去在devise分支的所有我的变化。
我希望我所有的工作都处于隐藏状态,因为我没有清理或删除这些工作。
如果我做一个存储列表,我会得到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 apply f2c0c72
我得到一个错误:
fatal: Needed a single revision f2c0c72: no valid stashed state found
我怎样才能申请一个特定的藏匿处?
希望有人能帮助!
进入隐藏的键实际上是左边的stash@{n}
项。 所以试试git stash apply stash@{0}
等等(注意在某些shell中你需要引用"stash@{0}"
,比如zsh和fish)。
事实上,存储@ {0}是git中的一个修订,您可以切换到…但是git stash apply ...
应该弄清楚如何将DTRT应用到您当前的位置。
要应用存储并将其从存储列表中删除,请运行:
git stash pop stash@{n}
要应用存储并将其保存在存储caching中,请运行:
git stash apply stash@{n}
如果在Windows机器和PowerShell中,需要引用如下参数:
git stash apply "stash@{0}"
…或应用更改并从存储中删除:
git stash pop "stash@{0}"
否则没有引号,你可能会得到这个错误:
致命的:模棱两可的论点“隐藏@”:未知的版本或path不在工作树中。
从版本2.11开始,这非常容易,您可以使用N栈号而不是说"stash@{n}"
。 所以现在,而不是使用:
git stash apply "stash@{n}"
你可以input:
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}
你可以input:
git stash apply 1
否则,即使自1.7.5.1以来在目录中进行了一些更改,也可以使用它,但是如果出现错误,则必须确保存储不会覆盖工作目录更改:
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中引用reflog。 “git stash”命令学会接受“git stash apply 4”作为“git stash apply stash @ {4}”的缩写
- 发行说明1.7.5.1
git stash apply“用来拒绝工作,如果工作树有任何改变,即使改变没有与改变时重叠的存储logging