我有一些储藏品,为了将来我想给它们取一个有意义的名称。虽然可以通过传递消息作为参数到git stash save
来保存,但是是否有一种方法可以向现有的储藏品中添加消息呢?
.git/logs/refs/stash
中的消息。git show stash
或git log --all
),只会更改隐藏修补的 reflog 条目。 - Zaz是的,有一种方法,您可以尝试这个:
git stash store -m "你的描述性信息" stash@{1}
这将创建一个名为stash@{0}
的新存储,并带有上述消息。
此存储与stash@{1}
相同。
然后您可以使用以下命令删除上面的旧stash@{1}:
git stash drop stash@{2}
# 因为已经创建了一个新的stash,所以stash@{1}变成了stash@{2}。
注意:您无法对stash@{0}执行此操作:git stash store -m "消息在这里" stash@{0}
将不起作用。
stash{0}
不能使用? - CharlesBgit stash apply
时,他会得到不同的结果。如果这个调用是 stash@{0},那么后续对 git stash apply
的调用会产生相同的结果。 - Ryan Legit stash save "你的信息"
。 - scrat.squirrelgit stash store
的作用是对 git stash create
命令的提交引用进行操作,即 create
创建了存储提交,store
将其写入 .git/logs/refs/stash
(即 /refs/stash
的 reflog)。通过向 store
传递一个现有的提交,我认为它本质上正在执行与已接受答案相同的操作,即修改 .git/logs/refs/stash
-- 底层的存储提交保持与之前完全相同。这可能也解释了为什么它不适用于 stash@{0}
-- refs/stash
的头部不能同时存在于 refs/stash
的 reflog 中(或类似的情况)。 - Raman(扩展manojlds的答案。)最简单的附加消息的方法确实是使用取消暂存和重新暂存,同时带上一条消息,有一个 git stash branch
命令可以帮助您完成此操作。
git stash branch tmp-add-stash-message
git stash save "Your stash message"
唯一的缺点是这个隐藏文件现在似乎来自于 tmp-add-stash-message
分支。之后,您可以切换到另一个分支并删除此临时分支。
当然,这假设您的工作副本是干净的,否则您可以对当前更改进行隐藏操作 :-)
需要弹出并再次保存才能完成。
git stash save "你的信息"
。 - scrat.squirrel以下是一些命令,可以帮助您像@manojlds建议的那样弹出并保存:
git stash #save what you have uncommitted to stash@{0}
git stash pop stash@{1} #or another <stash> you want to change the message on
# only if necessary, fix up any conflicts, git reset, and git stash drop stash@{1}
git stash save "new message"
git pop stash@{1} #get back to where you were if you had uncommitted changes to begin with