いつgit stash save
の代わりにgit stash Push
を使用する必要がありますか?
git stash save
は、オプションではない単一の引数(stashメッセージ)を受け入れます。
git stash Push
は、オプション-m
のメッセージを受け入れ、引数としてスタッシュするファイルのリストを受け入れます。
明確にするために、Git 2.15/2.16(2018年第1四半期)から、git stash save
の代わりにgit stash Push
が推奨されなくなりました(git stash save
はまだ使用可能です)。
commit c0c0c82 、 commit fd2ebf1 、 commit db37745 (2017年10月22日)を参照してくださいby Thomas Gummerer(tgummerer
) .
( Junio C Hamano-gitster
- in commit 40f1293 、2017年11月6日)
stash
:マーク「git stash save
」はmanページで廃止予定'
git stash Push
'は、 'git stash save
'のインターフェースの歴史的なwar贅を修正します。
'git stash Push
'には 'git stash save
'のすべての機能があり、より優れた、より一貫したユーザーインターフェイスにより、 'git stash save
'が非推奨になりました。
stash
:「stash Push
」のsuperfluosヘルプを削除「
git stash save
」インターフェースを使用すると、ユーザーは「-
」で始まるメッセージを簡単に追加できます。「git stash save
」はコマンドライン引数として解釈されます、失敗します。
この場合、「-
」で始まるメッセージを使用してスタッシュを作成する方法に関する追加のヘルプを追加しました。'
stash Push
'の場合、メッセージは-m
フラグで渡され、この潜在的な落とし穴を回避します。
「-
」で始まるpathspecのみを、「-- --<pathspec>
」を使用してコマンドラインパラメーターと区別する必要があります。
これはgitコマンドラインインターフェースではかなり一般的であり、他のケースでユーザーが何を望んでいたかを推測しようとはしません。Pathspecsを渡すこの方法は他のgitコマンドでは非常に一般的であり、そこで追加のヘルプを提供しないため、 '
git stash Push
'のエラーメッセージでも同じことを行います。
Git 2.18(2018年第2四半期)では、コマンドラインの補完(contrib/
)が「git stash save
」が非推奨になったことを教えられました(「git stash Push
」は新しい世界で推奨されるスペルです) )そして、「git stash Push
」が可能な場合に可能な候補としてそれを提供しません。
commit df70b19 、 commit 0eb5a4f (2018年4月19日)by Thomas Gummerer(tgummerer
) 。
( Junio C Hamano-gitster
- in commit 79d92b1 、2018年5月8日)
completion
:stash -p
とstash Push -p
のエイリアスを作成しますマンページで「
git stash -p
」のエイリアスとして「git stash Push -p
」を定義します。完了スクリプトでも同じことを行うので、ユーザーが「git stash Push
」を使用している場合、「git stash -p --<tab>
」に指定できるすべてのオプションが完了します。
現在、ユーザーが取得できる追加オプションは「--message
」のみですが、今後さらに追加される可能性があります。