Git 存储失败

Git Stash Failed

我在 Windows 中使用 SmartGit。今天我需要硬重置几个提交。 SmartGit 自动为我隐藏了我修改过的文件。

重置后,它尝试应用存储:

$ git.exe stash apply --index stash@{0}

但它给了我:

Apply Stash: stash failed (return code 1).

我可以查看存储内容并查看我的所有代码,但我无法应用存储。我该如何解决这个问题?

能否导出成补丁,然后尝试手动应用?

git stash show -p > my_stash.patch

您可以做几件事:

  1. git apply --index 尝试保留您正在应用的存储的分阶段和非分阶段设置。这通常是 "too hard",但应用 而没有 --index,允许所有更改成为未暂存的,是可能的。如果不需要保持分离,那可能"just work".

  2. 作为,您可以将藏品变成补丁。请注意,git stash show 仅显示存储的未暂存部分,因此这有点像不使用 --index

  3. 如果所有其他方法都失败了,您可以将保存的存储区变成它自己的(新)分支。这将复活所有你 reset 离开的提交,但 仅在那个新分支 上。本质上,1 git stash branch <em>newbranch</em> 所做的是:

    • 将stash中保存的索引转为普通commit
    • 其父级是您执行 git stash save 步骤时处于活动状态的提交(是 HEAD 提交)(其父级是其相同的旧父级,等等);
    • 使newbranch分支的索引提交提示,这是一个新创建的分支;和
    • 保留工作树和(如果保存为存储的一部分)untracked/all 文件准备好在您现在所在的新分支上提交。

1它真的比 "essence" 多 "fact":这就是 git stash branch 的工作原理,因为它离开了 i提交 stash-bag 并创建一个指向它的新分支名称。

就做git stash pop。它会让你在工作树中得到你隐藏的变化。 (pop 考虑到你想要 stash@{0}

希望对您有所帮助!