だから、なぜこのトピックに多くの驚きがあるのかはわかりません。プッシュと非推奨の保存の両方でスタッシュに名前を付けることができます。また、正規表現を使用して、適用によってそれを元に戻すことができます。
適用する名前を使用するGit stashメソッド
$ git stash push -m "john-hancock"
$ git stash apply stash^{/john-hancock}
前述したように、saveコマンドは廃止されましたが、引き続き機能するため、push呼び出しで更新できない古いシステムでこれを使用できます。pushコマンドとは異なり、-mスイッチはsaveでは必要ありません。
// save is deprecated but still functional
$ git stash save john-hancock
ポップアンドドロップの問題
私はそれがポップで機能するとは信じていませんが、それはポップが適用後にドロップを実行し、正規表現がドロップフレンドリーではないためだと思います。それはただの直感です。私はそれをテストしていません。
これはGit 2.2とWindows 10です。
視覚的証拠
これは、プロセスを示す美しいアニメーションGIFです。
イベントのシーケンス
GIFはすぐに実行されますが、見ればプロセスは次のとおりです。
- lsコマンドは、ディレクトリに4つのファイルを表示します
- touch example.htmlは5番目のファイルを追加します
- git stash push -m "john-hancock" -a(-aには追跡されていないファイルが含まれます)
- lsコマンドはstashの後に4つのファイルを表示します。これは、stashと暗黙的なハードリセットが機能したことを意味します
- git stash stashを適用^ {/ john-hancock}実行
- lsコマンドは5つのファイルをリストし、example.htmlファイルが戻されたことを示します。これは、git stash applyコマンドが機能したことを意味します。
これは理にかなっていますか?
正直なところ、このアプローチの利点は何なのかわかりません。stashに名前を付けることには意味がありますが、検索には意味がありません。プロセスをスクリプト化すると役立つかもしれませんが、名前で隠し場所をポップするだけの方が簡単です。
$ git stash pop 3
$ git stash apply 3
これは正規表現よりもずっと簡単に見えます。
git stash push -m stashname
は現在の構文です。git stash save stashname
廃止されました。