git stash-防止执行拼写错误的子命令

时间:2018-08-10 08:41:53

标签: git git-stash

git stash documentation中,有以下段落:

  

要快速创建快照,可以省略“ push”。 在此模式下,不允许使用非选项参数来防止拼写错误的子命令产生不必要的隐藏项。这两个例外是stash -p(它用作stash push -p和pathspecs的别名),它们可以在双连字符后使用-以便消除歧义。

突出显示的句子到底是什么意思? 我认为可以使用的唯一非选项参数是<message><pathspec>...

这是否意味着如果编写了命令git stash -m"message",git可能会认为用户拼错了单词stash,但无论如何仍会执行命令(git stash push)?

谢谢。

1 个答案:

答案 0 :(得分:2)

据我了解,它与git stash save的典型行为有关。

如果愿意

git stash save whatever you want

然后,将每个参数(“无论如何”,“您”和“想要”)作为一个整体来构成隐藏消息。 (请注意:stash save已过时)

现在,由于git stash push允许省略push,因此您用粗体引用的语句使“清楚”(显然不够),我们刚刚看到的关于git stash save的行为并不应用。此处不允许使用其他非选项参数。

简而言之,我们不能做什么的一个例子:

git stash whatever I want

push之后将隐含stash

或更具体地说(以解决“拼写错误”部分):

# next command will create a new branch with the last stashed content
git stash branch myNewBranch

# and the next WOULD HAVE created a new stash entry with message "brnach myNewBranch"
# if not for the part you quoted in bold
git stash brnach myNewBranch

在评论后进行编辑:但是,最后这条拼写错误的行将被错误地拒绝,而不是无意间隐藏了任何内容。