由於查爾斯的小費,我颳起了bash腳本做我想要的到底是什麼(我也陷入了實現這個,因爲只有一個別名問題)。它需要一個可選的存儲消息,就像git存儲保存一樣。如果沒有提供,它將使用由git存儲生成的默認消息。
#!/bin/sh
#
# git-stash-push
# Push working tree onto the stash without modifying working tree.
# First argument (optional) is the stash message.
if [ -n "$1" ]; then
git update-ref -m "$1" refs/stash "$(git stash create \"$1\")"
else
HASH=`git stash create`
MESSAGE=`git log --no-walk --pretty="tformat:%-s" "$HASH"`
git update-ref -m "$MESSAGE" refs/stash "$HASH"
fi
編輯:正如下面評論指出的那樣,在你的路徑某處保存該腳本git-stash-push
足以能夠通過鍵入git stash-push
調用它。
這裏的好處是,即使您使用此方法刪除存儲,您仍然可以使用懸掛提交的git log [commit-hash]來查看存儲消息!
編輯:既然git的2.6.0,您可以添加到--create-reflog
和update-ref
然後git stash list
將顯示此即使git stash
之前沒有使用。
如果你調用'git-stash-push'文件並將它放在PATH的某個地方,就不需要爲它創建一個別名。 'git stash-push'會發現(並且調用)'git-stash-push' – 2011-06-12 08:42:20
真的嗎?有趣的,我會嘗試。 – Eliot 2011-06-13 18:54:31
上述腳本的一個警告,它似乎無法正常工作時,隱藏是空的。 – Eliot 2011-06-24 09:00:12