我真的希望有人可以提供建议.
我有2个分支主| 设计
在设计工作中我做了一个藏匿并切换到主人,做了一些调整.切换回设计并执行存储仅适用于丢失设计分支中的所有更改.
我希望我的所有工作都在藏匿之内,因为我没有清除或删除这些.
如果我做一个藏匿列表,我得到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
Run Code Online (Sandbox Code Playgroud)
如果我尝试stash apply我收到错误:
fatal: Needed a single revision
f2c0c72: no valid stashed state found
Run Code Online (Sandbox Code Playgroud)
我该如何申请特定藏匿?
希望有人可以帮忙!
ara*_*nid 719
进入藏匿处的钥匙实际上stash@{n}是左侧的物品.所以尝试:
git stash apply stash@{0}
Run Code Online (Sandbox Code Playgroud)
(注意,在某些shell中你需要引用"stash@{0}",比如zsh,fish和powershell).
要获取藏匿列表:
git stash apply "stash@{n}"
Run Code Online (Sandbox Code Playgroud)
实际上stash @ {0}是git中的一个修订版,你可以切换到......但是stash@{n}应该弄清楚如何将DTRT应用到你当前的位置.
Dan*_*erz 231
要应用存储并将其从存储列表中删除,请运行:
git stash pop stash@{n}
Run Code Online (Sandbox Code Playgroud)
要应用存储并将其保存在存储缓存中,请运行:
git stash apply stash@{n}
Run Code Online (Sandbox Code Playgroud)
Pau*_*Pau 46
从版本2.11开始,它非常简单,您可以使用N堆栈编号而不是说"stash@{n}".所以现在而不是使用:
git stash apply "stash@{n}"
Run Code Online (Sandbox Code Playgroud)
你可以输入:
git stash apply n
Run Code Online (Sandbox Code Playgroud)
例如,在您的列表中:
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
Run Code Online (Sandbox Code Playgroud)
如果你想申请,stash@{1}你可以输入:
git stash apply 1
Run Code Online (Sandbox Code Playgroud)
否则,即使您在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.
Run Code Online (Sandbox Code Playgroud)
在1.7.5.1之前的版本中,如果工作目录发生更改,则拒绝工作.
Git发行说明:
当在存储的默认位置命名单个元素时,用户总是必须说"存储@ {$ N}",即refs/stash中的reflogs."git stash"命令学会接受"git stash apply 4"作为"git stash apply stash @ {4}"的简写
git stash apply"用于在工作树中有任何变化时拒绝工作,即使更改与存储记录的更改不重叠
jte*_*rry 40
如果一个在Windows机器上和PowerShell中,则需要引用如下参数:
git stash apply "stash@{0}"
Run Code Online (Sandbox Code Playgroud)
...或者应用更改并从存储中删除:
git stash pop "stash@{0}"
Run Code Online (Sandbox Code Playgroud)
否则,如果没有引号,您可能会收到此错误:
致命的:模糊的论点'stash @':未知的修订或路径不在工作树中.
小智 30
git stash list
Run Code Online (Sandbox Code Playgroud)
列表将显示所有隐藏的项目,例如:stash@{0}:,stash@{1}:,..,stash@{n}:
然后选择数字 n 表示 stash@{n}:
git stash apply n
Run Code Online (Sandbox Code Playgroud)
例如:
git stash apply 1
Run Code Online (Sandbox Code Playgroud)
会将特定的隐藏更改应用于当前分支
Jan*_*ndr 26
如果您有更多的藏品,我建议您在应用它们之前先检查一下。使用:
git stash show -p
Run Code Online (Sandbox Code Playgroud)
详细查看最后一个藏匿处。如果您有更多储藏室并且想要一个特定的储藏室,请在末尾添加一些储藏室:
git stash show 1
Run Code Online (Sandbox Code Playgroud)
然后,当您找到正确的存储时,通过键入以下内容应用它:
git stash apply 1
Run Code Online (Sandbox Code Playgroud)
同样,该数字是一个没有数字的示例,您将应用最后一个。
小智 10
查看您最近的工作以及它在运行时发生的分支
git stash list
Run Code Online (Sandbox Code Playgroud)
然后选择要应用的存储并仅使用数字:
git stash apply n
Run Code Online (Sandbox Code Playgroud)
其中n(在上述示例中)是与正在进行的工作相对应的数字。