始终在 git 中提示输入隐藏消息
Always prompt for a stash message in git
我倾向于隐藏更改而不记得我隐藏它们的原因。
我确实在大多数时候都强调 git stash push -m
,但如果有消防演习或其他事情让我无法正常工作,我可能会忘记并浪费时间尝试恢复。
有没有办法模仿 git commit
的行为(减去 -m
)对于 git stash
如果消息是 vim
弹出并放弃操作空的?
据我所知,没有针对此的配置选项。您必须在 .gitconfig
中写一个别名并训练自己使用它。
例如,我有两个隐藏别名 git pop
和 git save
。 (你可以看到我没有收到关于 git stash save
被弃用的备忘录)。这些都是为了方便,并将默认行为更改为我认为更有用的东西。
save = stash save -k -u
pop = stash pop
不幸的是 git stash push -m
没有调出编辑器,如果您需要写几个词来描述您正在做的事情,请考虑使用分支。我们可以通过编写一些 shell 函数并使用 "$@"
将参数传递给 -m
来解决此问题,以确保带有空格的消息是单个参数。
savem = "!f() { git save -m \"$@\"; }; f"
现在你可以写 git savem 'remember to remember what this was'
.
$ git savem 'remember to remember what this was'
Saved working directory and index state On issue/45: remember to remember what this was
如果您忘记了,您将收到正常的 git-stash
用法消息。如果愿意,您可以使用别名来提供自定义用法消息。
$ git savem
usage: git stash list [<options>]
or: git stash show [<stash>]
...
对我来说,考虑为此使用分支是有意义的。看起来您想保留更改。可以命名分支,以便更容易回忆起正在处理的内容。这些可以是本地的,也可以推送到远程,以防它不是演习。
$ git branch topic/wip
如果你想继续在 master 上工作,你可以做一个
$ git checkout master
不漂亮,但可以使用 bash + moreutils 中的 vipe 实现
msg="$(< /dev/null vipe)";
[[ -z "$msg" ]] || git stash -m "$msg"
我倾向于隐藏更改而不记得我隐藏它们的原因。
我确实在大多数时候都强调 git stash push -m
,但如果有消防演习或其他事情让我无法正常工作,我可能会忘记并浪费时间尝试恢复。
有没有办法模仿 git commit
的行为(减去 -m
)对于 git stash
如果消息是 vim
弹出并放弃操作空的?
据我所知,没有针对此的配置选项。您必须在 .gitconfig
中写一个别名并训练自己使用它。
例如,我有两个隐藏别名 git pop
和 git save
。 (你可以看到我没有收到关于 git stash save
被弃用的备忘录)。这些都是为了方便,并将默认行为更改为我认为更有用的东西。
save = stash save -k -u
pop = stash pop
不幸的是 git stash push -m
没有调出编辑器,如果您需要写几个词来描述您正在做的事情,请考虑使用分支。我们可以通过编写一些 shell 函数并使用 "$@"
将参数传递给 -m
来解决此问题,以确保带有空格的消息是单个参数。
savem = "!f() { git save -m \"$@\"; }; f"
现在你可以写 git savem 'remember to remember what this was'
.
$ git savem 'remember to remember what this was'
Saved working directory and index state On issue/45: remember to remember what this was
如果您忘记了,您将收到正常的 git-stash
用法消息。如果愿意,您可以使用别名来提供自定义用法消息。
$ git savem
usage: git stash list [<options>]
or: git stash show [<stash>]
...
对我来说,考虑为此使用分支是有意义的。看起来您想保留更改。可以命名分支,以便更容易回忆起正在处理的内容。这些可以是本地的,也可以推送到远程,以防它不是演习。
$ git branch topic/wip
如果你想继续在 master 上工作,你可以做一个
$ git checkout master
不漂亮,但可以使用 bash + moreutils 中的 vipe 实现
msg="$(< /dev/null vipe)";
[[ -z "$msg" ]] || git stash -m "$msg"