我已经用了很长一段时间了。我最近发现了git stash apply命令。当我尝试它时,它似乎和git stash pop一样有效。
gitstashpop和gitstashapply之间有什么区别?
我已经用了很长一段时间了。我最近发现了git stash apply命令。当我尝试它时,它似乎和git stash pop一样有效。
gitstashpop和gitstashapply之间有什么区别?
当前回答
假设不会抛出错误,并且您希望处理可用存储列表中的顶部存储项:
gitstashpop=gitstashapply+gitstashdrop
其他回答
假设不会抛出错误,并且您希望处理可用存储列表中的顶部存储项:
gitstashpop=gitstashapply+gitstashdrop
将其付诸实践可能会帮助您更好地理解差异。
假设我们正在处理master分支,并且有一个包含“hello”字符串的文件hello.txt。
让我们修改文件并将“world”字符串添加到其中。现在,您需要移动到其他分支以修复刚刚发现的小错误,因此需要隐藏更改:
git stash
您移动到另一个分支,修复了错误,现在您可以继续在主分支上工作,因此您可以弹出更改:
git stash pop
现在,如果您尝试查看隐藏内容,您将获得:
$ 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就像堆栈的pop一样——它实际上在元素被弹出后就移除了,而apply更像是peek。
快速回答:
git stash pop->从隐藏列表中删除
git存储应用->将其保存在存储列表中
gitstashpop应用顶部隐藏的元素并将其从堆栈中移除。git stash apply也会这样做,但会将其留在stash堆栈中。
你可以用同样的方式思考,这就是我学习的方式:
gitstashpop->ctrl+x,ctrl+v(剪切粘贴)
git stash apply->ctrl+c,ctrl+v(复制并粘贴)