协慌网

登录 贡献 社区

适用于 git stash pop 和 git stash 的区别

我一直在使用git stash pop一段时间了。我最近发现了git stash apply命令。当我尝试它时,它似乎与git stash pop

git stash popgit stash apply什么区别?

答案

git stash pop在应用它之后抛弃 (最上面,默认情况下)stash,而git stash apply 将它留在隐藏列表中以便以后重用(或者你可以git stash drop it)。

除非在git stash pop之后发生冲突,否则会发生这种情况,在这种情况下它不会删除存储,使其行为与git stash apply完全相同。

另一种看待它的方法: git stash popgit 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也是如此,但是将它留在了存储堆栈中。