如何修改Git stash中的存储消息?
修改Git Stash消息的原地解决方案
嘿,我完全懂你的困扰——当初我随手git stash存了东西没加消息,后来想改也找了半天官方文档,确实没直接的现成命令,但其实有两种靠谱的方法,不用先pop再重新存:
方法一:用Git底层命令直接修改(纯原地操作)
这个方法不用切换分支,直接在当前工作状态下完成修改:
先查看你的stash列表,确认要修改的stash索引(比如最近创建的那个就是
stash@{0}):git stash list生成一个带新消息的新stash提交对象,再替换掉旧的条目:
# 生成带自定义消息的新commit对象,替换引号里的内容为你的新消息 NEW_STASH_COMMIT=$(git stash show -p stash@{0} | git commit-tree -m "你的自定义stash消息" HEAD^{tree}) # 将新commit存入stash git stash store -m "你的自定义stash消息" $NEW_STASH_COMMIT # 删除原来的旧stash条目 git stash drop stash@{0}
执行完再跑一遍git stash list,就能看到更新后的消息了。
方法二:用临时分支间接修改(更直观易懂)
如果你觉得底层命令有点绕,这个方法逻辑更清晰,适合不太熟悉Git底层操作的朋友:
基于要修改的stash创建一个临时分支,同时自动把stash内容应用到分支上:
git stash branch temp-stash-fix stash@{0}此时stash的内容已经变成了当前分支的最新提交,直接修改提交消息:
git commit --amend -m "你的自定义stash消息"把修改后的内容重新存为带新消息的stash:
git stash push -m "你的自定义stash消息"切回原来的工作分支,再删掉临时分支:
git checkout 你的原分支名 git branch -D temp-stash-fix
两种方法都能达到“不打乱当前工作状态”的修改效果,要是最近存的stash用第一种更快;怕出错的话,第二种更稳妥。
内容的提问来源于stack exchange,提问作者Lucas Roberts
相关产品推荐
相关产品推荐

