web-dev-qa-db-ja.com

1.8.3でスタッシュポップ特有のスタッシュをgitするにはどうすればいいですか?

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

今朝私はスタックの深いところにある変更1を隠そうとしました。

私はgit stash pop stash@{1}を実行し、そしてこのエラーを得ました。

fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

私はこれについて20種類以上のバリエーションを試しただけでなく、applyの代わりにpopを使うことにも成功しました。何が変わったの?他に誰かがこれに遭遇しますか?

201
Jesse Atkinson

先に指摘したように、中括弧はあなたのOS、シェルなどに応じてエスケープまたは引用を必要とするかもしれません。

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

git stash list
git stash apply stash@{n}

git stash apply version

224
Bob Gilmore

あなたは中括弧をエスケープする必要があります。

git stash pop stash@\{1\}
146
Vasiliy

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

Aaron M Watson(watsona4 による commit a56c8f5 (2016年10月24日)を参照してください。
Junio C Hamano - gitster - in commit 9fa1f9 に合併、2016年10月31日)

stash:stashがインデックスによってのみ参照されるようにします

"stash@{n}"を明示的に参照する代わりに、単に "n"として参照できるようにします。
ほとんどのユーザーはstashスタック内での自分の位置によってのみstashを参照します(ここでは "index"と呼んでいます)。

典型的な隠し場所(stash@{n})の構文は、少し面倒で忘れがちですが、スクリプト内で正しくエスケープするのが難しい場合もあります

このため、単純にインデックスを参照することによって隠し場所で物事を処理する機能が望ましいです。

そう:

git stash drop 1
git stash pop 1
git stash apply 1
git stash show 1
54
VonC

Windows Powershellでは、これを実行します。

git stash apply "stash@{1}"
48
Robert Brooker

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

git stash pop stash@"{1}"
15
owenmck

上記のいずれでもうまくいかない場合は、隠し場所を囲む引用符を使用してください。

git stash pop "stash@{0}"
10
ksooklall

最初にリストをチェックしてください: -

git stash list

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

git stash pop stash@{index_number}

例えば。:

git stash pop stash@{1}
0
Jabbi Syed