git stash无法应用保存的更改

时间:2011-10-04 05:59:05

标签: git git-stash

我尝试使用以下方法保存git状态:git stash save changes_1。 我可以使用:git stash list

查看存储列表

但是当我尝试使用以下方法应用存储:git stash apply stash @ {0}。 现在,我看不到任何更改正在使用git diff进行更新。它显示的信息“已经上传!”

因此,简而言之,git stash无法应用保存的更改。 任何帮助。

2 个答案:

答案 0 :(得分:2)

当先前应用存储或应用存储时,会发生这种情况。当前分支已经有了这些变化。请考虑以下情形:

$ git diff
diff --git a/test.txt b/test.txt
index e69de29..9daeafb 100644
--- a/test.txt
+++ b/test.txt
@@ -0,0 +1 @@
+test

 $ git stash
Saved working directory and index state WIP on master: b1d46d2 test.txt
HEAD is now at b1d46d2 test.txt

现在我们手动重新添加该行并提交它:

 $ git diff
diff --git a/test.txt b/test.txt
index e69de29..9daeafb 100644
--- a/test.txt
+++ b/test.txt
@@ -0,0 +1 @@
+test

 $ git commit -a
[master 8efb415] test.txt
 1 files changed, 1 insertions(+), 0 deletions(-)

 $ git stash list
stash@{0}: WIP on master: b1d46d2 test.txt

 $ git stash apply stash@{0}
# On branch master
nothing to commit (working directory clean)

此处git stash apply无效。

答案 1 :(得分:1)

尝试git status -s以查看更改是否存在。

如果他们在那里你们都设置了,如果不是使用git存储列表并确保你保存的存储位于索引0.如果你尝试应用一个已经有工作分支的变化的存储,它将是已经是最新的。

如果您需要,可以将当前分支重置为上次提交。 Git重置 - 硬HEAD,然后尝试再次应用该存储。注意所有当前的变化都不会被搁置,而且未被推送的承诺将会丢失。