通常在执行git stash
时,我忘记提供自定义消息。除非有自定义消息,否则我如何制作一个拒绝藏匿创建的钩子?
答案 0 :(得分:0)
您可以使用git stash save "<your_message>"
答案 1 :(得分:0)
对于当前版本的git(1.8.3),不能通过在路径中提供git-command脚本(例如git-stash)来为现有的git命令添加别名或覆盖它们。
你只需要使用shell函数,但无论如何这也可能是最合适的事情。例如,您可以在这些行中添加一些内容到.bashrc
:
function git() {
if [[ $1 == stash ]] && [[ $2 == save ]]; then
SAVED_ARGS=("$@")
shift; shift;
while test $# != 0; do
case "$1" in
--) shift; break;;
-*) ;;
esac
shift;
done
[[ -z "$*" ]] && { echo "Error - empty stash message!"; return 1; }
command git "${SAVED_ARGS[@]}"
else
command git "$@"
fi
}
这将只截取一个空的git stash save
,并将其他所有内容转发给git as-is。将传递git stash save的可选参数。
答案 2 :(得分:0)
为什么不使用普通的git checkins而不是stash?
$ git checkout my_work_branch
$ $EDITOR file.c
# At this point you are in the middle of some new change but then want
# temporarily save to do another change first
$ git co -b stash
$ git add file.c
$ git commit -m "custom stash message"
$ git checkout my_work_branch
$ $EDITOR file.c
$ git add file.c
$ git commit -m "Some other fix"
$ git rebase --onto my_work_branch stash^ stash
$ git reset HEAD^
$ git checkout my_work_branch
$ git branch -D stash
是的,我知道这是更多要编写的命令,但这样你就可以完全控制所有内容,而且这种方法无法失败。多年前我开始学习git时,我只是简单地使用了git stash,但对我来说它太脆弱了,从失败的git stash pop
中恢复是不可能或非常困难的。也许git stash从那时起已经有所改进,但无论如何我不喜欢stank的方式混淆了gitk中显示的版本树,所以我更喜欢上面描述的方式。