1.8.3で特定のスタッシュをGitでスタッシュする方法


290

Gitをアップグレードしました。私はGitバージョン1.8.3を使用しています。

今朝、私はスタックの1つ下の変更をアンスタッシュしようとしました。

実行git stash pop stash@{1}してこのエラーが発生しました。

fatal:あいまいな引数 'stash @ 1':作業ツリーにない不明なリビジョンまたはパス。次のように、パスをリビジョンから分離するには「-」を使用します: 'git [...]-[...]'

私はこれについて約20以上のバリエーションを試しましたが、apply代わりに使用popしても成功しませんでした。何が変わったの?他の誰かがこれに遭遇しましたか?


2
{}をエスケープしてみましたか?
AlexDev 2013

20
Git 2.11(2016年第4四半期)では、以下を使用できますgit stash pop 1以下の私の回答を
VonC '11 / 11/16

回答:


359
git stash apply n

gitバージョン2.11以降で動作します

元の答え、おそらくシェルエスケープを含む古い構文の問題のデバッグに役立つ:

以前に指摘したように、中かっこは、OSやシェルなどによってはエスケープまたは引用が必要になる場合があります。

何が問題になっている可能性があるかについての詳細なヒントと、さまざまなシェルやプラットフォームで回避する方法については、「stash @ {1}があいまいですか?」を参照してください。

git stash list
git stash apply stash@{n}

git stash適用バージョン


15
この答えに関する私の唯一の問題は、質問がpop特定の隠し場所をどのように尋ねるかであり、このコマンドapplyは、隠しておくのではなく、隠し場所を指定することです。違いは、ポップはスタッシュをコードに適用し、スタッシュ自体を削除することです。
Grant Humphries、

私のために働いていません。エラー「不明なオプション:-encodedCommand」が発生する
Yuvraj Patil


回答を今すぐ更新してくださいgit stash apply n
Hafiz Temuri

179

中括弧をエスケープする必要があります:

git stash pop stash@\{1\}

78

構文の引用符を処理する必要がないようにするには、stash@{x}Git 2.11(2016年第4四半期)を使用してください

Aaron M Watson()によるcommit a56c8f5(2016年10月24日)を参照してください。(合併によりJunio C浜野- -9fa1f90コミットし、2016年10月31日)をwatsona4
gitster

stash:スタッシュがインデックスによってのみ参照されることを許可します

" stash@{n}"を明示的に参照する代わりに、単に " n" として参照できるようにします。
ほとんどのユーザーは、スタッシュスタック内の位置によってスタッシュを参照するだけです(ここでは「インデックス」と呼びます)。

典型的なstash(stash@{n})の構文は少し煩わしく、忘れがちで、スクリプトで適切にエスケープするのが難しい場合があります

このため、単にインデックスを参照するだけでstashを実行できる機能が望ましいです。

そう:

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

5
ありがとう!これはおそらく、2019
。–アーロンフレーリー


16

ロバートが指摘したように、引用符はあなたのためにトリックをするかもしれません:

git stash pop stash@"{1}"

12

上記のいずれも機能しない場合は、スタッシュ自体を囲む引用符が機能する可能性があります。

git stash pop "stash@{0}"

4

私は2.22をインストールしていて、これはうまくいきました。

git stash pop --index 1

動作しません。.$ git stash pop --index 1 fatal:あいまいな引数 '1':不明なリビジョンまたは作業ツリーにないパス。次のように、パスをリビジョンから分離するには、「-」を使用します。'git<command> [<revision> ...]-[<file> ...] '
Dave Doga Oz


1

まずリストを確認してください:

git stash list

stashリストからポップしたいインデックスをコピーします

git stash pop stash@{index_number}

例えば。:

git stash pop stash@{1}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.