试图反向应用存储,git stash show和git apply给出错误

时间:2014-09-09 19:22:56

标签: git git-stash git-commands

我跟随此git stashing guide,但当我尝试使用命令取消隐藏时

$ git stash show -p stash@{0} | git apply -R

$ git stash show -p | git apply -R

我一直收到这些错误

error: patch failed: app/scripts/app.js:20
error: app/scripts/app.js: patch does not apply
error: patch failed: app/views/main.html:34
error: app/views/main.html: patch does not apply

如何解决此错误?

当我$git stash list时,它会显示stash@{0}: WIP on my_branch: dc19ed5 My Commit

1 个答案:

答案 0 :(得分:1)

如果您在应用存储后修改了代码,则无法以该指南建议的方式撤消应用的存储。这是因为git不能再应用stash指定的补丁,因为代码看起来不再是它的预期。

您可以手动修复git stash show -p stash@{0}的修补程序输出,但除非应用修补程序后所做的更改非常小,否则我不会推荐它。

这些步骤应该允许你进入你想要的状态,可能有更好的方法,所以如果我想到它,我会更新这个答案:

  1. 将代码存储在当前状态
  2. 应用上一个存储并提交
  3. 应用新的存储和提交(可能存在一些必须手动修复的合并冲突)
  4. 还原第一次提交
  5. 这应该会让您进行只有新更改的提交。您可能希望在分支上执行此操作。