在存储保存和存储弹出后,修改的文件不会保持暂存状态

use*_*882 1 git version-control

我有一堆分阶段的文件 - 其中一些是new file,其中一些是modified.我这样做git stash save "message",所有人都被藏起来了.没关系.但是,当我这样做时git stash pop,突然只有new file文件被上演,modified而不是.这是为什么?

tor*_*rek 5

git stash pop 以这种方式将阶段性和非阶段性(工作目录)变化结合在一起.

git stash pop --index 如果可以的话,将它们分开(有时由于现有的分段内容或合并状态,这是不可能的).

在把git stash pop事情集合在一起之后,相当困难(并非不可能,但通常不值得工作)将丢弃的藏匿物放回去,以便你可以再次尝试--index.出于这个原因,我认为人们应该养成使用git stash apply(有或没有--index)的习惯,git stash drop一旦他们对结果感到满意.如果你apply,藏匿处仍然存在,那么你可以git reset --hard HEAD撤消它并--index在你想要的时候重试.(这是当你混淆了特别有用--index--keep-index,这使发生在我身上.:-))

  • 不...详细解释`--index`"真正起作用"对于评论来说太复杂了,但它相当于利用`git stash save`创建(至少)*two*commit,一个对于索引/暂存区域,以及一个用于工作目录.如果可以的话,应用(或弹出)`--index`会尝试保留原始的暂存/未暂停状态.(我不确定为什么`stash`脚本不会将此作为默认操作,对于"太难,不能这样做"的情况,使用`--mush-together`选项.) (2认同)