私はgit stash pop
かなり長い間使用しています。git stash apply
私は最近、そのコマンドについて知りました。試してみると、と同じように動作しているようgit stash pop
です。
git stash pop
との違いは何git stash apply
ですか?
git stash pop
適用後に(デフォルトでは最上位の)スタッシュを破棄しますが、後で再利用できるように(または後で再利用できるように)git stash apply
スタッシュリストに残しgit stash drop
ます。
これは、の後git stash pop
に競合がない限り発生します。競合が発生した場合、スタッシュは削除されず、とまったく同じように動作しますgit stash apply
。
それを見る別の方法:git stash pop
ですgit stash apply && git stash drop
。
git stash pop
一番上の隠し要素を適用し、スタックから削除します。git stash apply
同じことを行いますが、スタッシュ スタックに残します。
実際に見てみると、違いがよくわかるかもしれません。
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
に似ています。