1344

私はgit stash popかなり長い間使用しています。git stash apply私は最近、そのコマンドについて知りました。試してみると、と同じように動作しているようgit stash popです。

git stash popとの違いは何git stash applyですか?

4

8 に答える 8

2143

git stash pop 適用後に(デフォルトでは最上位の)スタッシュを破棄します、後で再利用できるように(または後で再利用できるように)git stash apply スタッシュリストに残しgit stash dropます。

これは、の後git stash popに競合がない限り発生します。競合が発生した場合、スタッシュは削除されず、とまったく同じように動作しますgit stash apply

それを見る別の方法:git stash popですgit stash apply && git stash drop

于 2013-03-08T03:15:45.923 に答える
84

git stash pop一番上の隠し要素を適用し、スタックから削除します。git stash apply同じことを行いますが、スタッシュ スタックに残します。

于 2013-03-08T03:16:25.250 に答える
53

実際に見てみると、違いがよくわかるかもしれません。

masterブランチで作業していて、 hello.txt"Hello" 文字列を含むファイルがあるとします。

ファイルを変更して、「world」文字列を追加しましょう。ここで、別のブランチに移動して、見つかった小さなバグを修正する必要があるため、次stashの変更を行う必要があります。

git stash

master別のブランチに移動し、バグを修正したので、ブランチで作業を続ける準備ができたので、次popの変更を行います。

git stash pop

ここで、stash コンテンツを確認しようとすると、次のようになります。

$ git stash show -p
No stash found.

ただし、git stash apply代わりに使用すると、隠しコンテンツを取得できますが、それも保持されます。

$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world

これpopは stack の pop と同じです。要素がポップされると、実際には削除されますが、peekapplyに似ています。

于 2016-11-30T12:27:06.877 に答える