如何在1.8.3中Git隐藏特定的弹出窗口?


289

我刚刚升级了Git。我使用的是Git版本1.8.3。

今天早上,我试图在堆栈中隐藏一个更改1。

我跑了git stash pop stash@{1},遇到了这个错误。

致命:参数“ stash @ 1”含糊不清:未知修订或路径不在工作树中。使用“-”将路径与修订分开,例如:“ git [...]-[...]”

我已经尝试了20多种变体,并且使用apply而不是pop没有成功。有什么变化?还有其他人遇到吗?


2
您是否尝试转义{}的?
AlexDev

20
使用Git 2.11(2016年第4季度),您现在可以使用git stash pop 1:参见下面的答案
VonC

Answers:


357
git stash apply n

从git版本2.11开始工作

原始答案,可能有助于调试涉及外壳转义的较旧语法的问题:

如前所述,花括号可能需要转义或引用,具体取决于您的操作系统,外壳等。

有关可能出现问题的详细提示以及如何在各种shell和平台中解决该问题,请参见“ stash @ {1}是否不明确? ”。

git stash list
git stash apply stash@{n}

git stash适用版本


15
我对这个答案的唯一了解是,该问题询问如何pop存储特定的存储,此命令apply将存储而不是弹出它。区别在于pop既将隐藏项应用到代码,又删除了隐藏项本身。
Grant Humphries

不为我工作。得到错误“未知选项:-encodedCommand”
Yuvraj Patil


请立即更新您的答案git stash apply n
Hafiz Temuri


78

如果要确保不必处理语法的引号stash@{x},请使用Git 2.11(2016年第四季度)

参见Aaron M Watson()的commit a56c8f5(2016年10月24日(由Junio C Hamano合并--commit 9fa1f90中,2016年10月31日)watsona4
gitster

stash:允许隐藏仅由索引引用

不必stash@{n}明确引用“ ”,而是可以简单地引用为“ n”。
大多数用户仅按其在存储堆栈中的位置来引用存储(这里我称之为“索引”)。

典型的stash(stash@{n})的语法有点烦人,容易忘记,有时很难在脚本中正确转义

因此,希望能够通过简单地引用索引来处理隐藏事务。

所以:

git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1

5
谢谢!这可能是2019
。– Aaron Frary


16

正如罗伯特(Robert)指出的那样,引号可能为您解决了这个问题:

git stash pop stash@"{1}"

12

如果以上方法均无效,则隐藏点本身的引号可能对您有用:

git stash pop "stash@{0}"

4

我已经安装了2.22,并且可以正常工作。

git stash pop --index 1

$ git stash pop --index 1致命:模棱两可的参数“ 1”:未知修订或路径不在工作树中。使用'-'将路径与修订版本分开,例如:'git <命令> [<版本> ...]-[<文件> ...]'
Dave Doga Oz

2

2.11+版使用以下内容:

git stash list

git stash apply n

n是数字stash @ {12}


1

首先检查清单:

git stash list

复制您要从存储列表中弹出的索引

git stash pop stash@{index_number}

例如。:

git stash pop stash@{1}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.