git stash не может применить сохраненные изменения - PullRequest
2 голосов
/ 04 октября 2011

Я попытался сохранить состояние git с помощью: git stash save changes_1. Я могу увидеть список тайников, используя: git stash list

Но когда я пытаюсь применить тайник с помощью: git stash apply stash @ {0}. Теперь я не вижу изменений, которые обновляются с помощью git diff. и он показывает сообщение «Уже обновлено!»

Итак, вкратце, git stash не может применить сохраненные изменения. Любая помощь.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Это происходит, когда ранее был применен тайник или он ничего не делает, например, текущая ветвь уже имеет эти изменения.Рассмотрим следующий сценарий:

$ 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 голос
/ 04 октября 2011

Попробуйте git status -s, чтобы увидеть, есть ли изменения.

Если они есть, у вас все настроено, если не использовать список git stash и убедитесь, что ваш сохраненный stash находится с индексом 0. Если вы попытаетесь применить stash, в котором есть изменения, которые уже являются частью рабочей ветви, это уже в курсе.

Если вы хотите, вы можете сбросить текущую ветку до последнего коммита. Git reset --hard HEAD и попробуйте снова применить этот тайник. Осторожно, так как все текущие изменения не спрятаны, а коммиты не переданы, будут потеряны.

...