用git stash丢失的变化,无法还原

时间:2017-12-29 14:27:00

标签: git

我在工作分支上进行了一些修改,然后是git stash。 我不知道这是否正常,但我在终端收到了一些奇怪的警告:

C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 17: git-sh-setup: No such file or director
y
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 18: git-sh-i18n: No such file or directory

C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 19: require_work_tree: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 20: cd_to_toplevel: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 186: /logs/refs/stash: No such file or dir
ectory
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 267: say: command not found
HEAD is now at 73b4e15 bug in resend email

我创建了一个新分支,希望应用隐藏的更改git checkout -b new_branch; git stash apply。 这给了我:

C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 17: git-sh-setup: No such file or director
y
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 18: git-sh-i18n: No such file or directory

C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 19: require_work_tree: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 20: cd_to_toplevel: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 396: eval_gettext: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 396: die: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 424: eval_gettext: command not found
C:\Program Files (x86)\Freeware\Git\1.9.5/libexec/git-core\git-stash: line 424: die: command not found
usage: git merge-recursive <base>... -- <head> <remote> ...

没有改变......我不能在藏匿之前回来。我当然搞砸了,但在藏匿和结帐之前,有没有办法在第一个分支上恢复损失?

1 个答案:

答案 0 :(得分:0)

您的配置存在一些问题,因此git-stash脚本无法找到其工作所依赖的其他脚本。因此,我们很难知道剩下的状态是什么。

我真的不想猜,但我会说我很悲观。我很惊讶脚本远远不足以修改你的工作目录或索引,但从你所描述的内容听起来就像它那样;并且根本不清楚事情是否已正确写入数据库。但同样,这是99%的猜测。

所以工作就是要弄清楚脚本为什么会起作用。你有正确安装的git吗?对于其他操作,我认为它一直在工作吗?如果在Windows上,你还记得启动一个启用git的shell实例(“git bash”,“git cmd”等)吗?您是否必须做一些不寻常的事情(比如复制二进制文件或提供完整路径)以便首先调用git?

我有太多的变量可以指导您完成每个意外事件,但我会从这些问题开始,因为您从{{1}获得的错误消息( not 警告) 正常。

一旦你明白这一点,接下来的工作就是评估损害并确定它是否可以恢复。您可以使用git-stash确认索引中是否还有任何内容。您可以使用git status来查看是否在所有混乱中创建了一个新的存储提交。