我一直在使用git stash pop
一段时间了。我最近发现了git stash apply
命令。当我尝试它时,它似乎与git stash pop
。
git stash pop
和git stash apply
什么区别?
git stash pop
在应用它之后抛弃 (最上面,默认情况下)stash,而git stash apply
将它留在隐藏列表中以便以后重用(或者你可以git stash drop
it)。
除非在git stash pop
之后发生冲突,否则会发生这种情况,在这种情况下它不会删除存储,使其行为与git stash apply
完全相同。
另一种看待它的方法: git stash pop
是git stash apply && git stash drop
。
得到了这个有用的链接,说明了差异,正如 John Zwinck 所述,以及 Git stash pop 的缺点。
例如,假设您的隐藏更改与您自首次创建存储后所做的其他更改发生冲突。 pop 和 apply 都有助于触发合并冲突解决模式,允许你很好地解决这些冲突...... 并且也不会摆脱存储,即使你可能期望流行。由于很多人都认为藏匿只是一个简单的堆栈,这通常会导致他们后来意外地弹出相同的藏匿处,因为他们认为它已经消失了。
链接http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/
git stash pop
应用顶部 stashed 元素并将其从堆栈中删除。 git stash apply
也是如此,但是将它留在了存储堆栈中。