# Find the item in the stash I'm trying to apply, based on the description.
git stash list
# Apply the stashed item, based on its index.
git stash apply 0
# Merge conflicts found... correct them.
git mergetool
# Drop the stash by whatever index was found.
# This is necessary since doing a git stash pop doesn't remove a stash that has merge-conflicts.
# In that scenario, it says "The stash entry is kept in case you need it again."
git stash drop 0
# Resave the stash with the merge-conflicts taken care of.
git stash save "Some message for identifying the stash in the list"
2条答案
按热度按时间ql3eal8s1#
你可以把你的工作树藏起来,然后扔掉你不需要的旧树。
或者,您可以弹出而不是应用,这将同时删除隐藏的内容:
另一种选择,如果你已经做了你想做的更改,然后才意识到你想合并的变化到顶部的储藏:
qvtsj1bj2#
我也需要这么做。
git stash的主要用途
我保留了一组我喜欢经常应用(而不是弹出)的stash。例如,我有一个stash应用了某个配置,这与签入repo的配置不同。在获得最新版本后,我将在检查stash列表后运行类似
git stash apply 0
的代码。"我刚才遇到的问题"
当应用一个隐藏时,你可能会遇到合并冲突。当这种情况发生时,你被迫修复合并冲突。这显然是你不想在每次应用隐藏时都做的事情。
决议
这显然不能保持索引不变,除非你要应用的项在栈顶,但它对我很有效,我只关心我在stash中有这个项,而不是它相对于其他stash项的位置。