3

git stashsavechanges_1を使用してgit状態を保存してみました。gitstashlistを使用してスタッシュリストを表示できます

しかし、git stash apply stash@{0}を使用してstashを適用しようとすると。現在、変更がgitdiffで更新されているのを確認できません。「Alreadyuptodate!」というメッセージが表示されています。

したがって、要するにgitstashは保存された変更を適用できません。どんな助けでも。

4

2 に答える 2

4

これは、スタッシュが以前に適用された場合、またはそれを適用しても何も行われない場合に発生します。たとえば、現在のブランチにはすでにこれらの変更があります。次のシナリオを検討してください。

$ 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は何もしません。

于 2011-10-04T06:38:42.373 に答える
2

git status -s を試して、変更があるかどうかを確認してください。

それらが存在する場合はすべて設定されています。使用されていない場合は git stash list を使用し、保存された stash がインデックス 0 であることを確認してください。すでに作業ブランチの一部である変更を含む stash を適用しようとすると、すでに日にち。

必要に応じて、現在のブランチを最後のコミットにリセットできます。Git reset --hard HEAD を実行してから、その stash を再度適用してみてください。現在のすべての変更が隠されておらず、プッシュされていないコミットが失われることに注意してください。

于 2011-10-04T06:04:38.403 に答える