Git stash: “Cannot apply to a dirty working tree, please stage your changes”,怎么解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我正在尝试应用我之前保存的更改。git stash pop得到信息:

Cannot apply to a dirty working tree, please stage your changes

对如何处理这件事有什么建议吗?

提问于
用户回答回答于

当我必须将隐藏的更改应用于脏的工作副本(例如,从存储库中弹出多个更改集)时,我将使用以下内容:

$ git stash show -p | git apply -3 && git stash drop

基本上

  1. 创建修补程序
  2. 命令的管道。
  3. 如果有任何冲突,则需要通过3路合并来解决。
  4. 如果应用(或合并)成功,它将删除刚刚应用的存储项...

我不知道为什么没有no-f(force)git stash pop它的行为应该和上面的单线一样。

同时,您可能需要将这个一行添加为git别名:

$ git config --global --replace-all alias.unstash \
   '!git stash show -p | git apply -3 && git stash drop'
$ git unstash
用户回答回答于

我是这样做的:

git add -A
git stash apply

然后(可选):

git reset

扫码关注云+社区