我已经用了很长一段时间了。我最近发现了git stash apply命令。当我尝试它时,它似乎和git stash pop一样有效。

gitstashpop和gitstashapply之间有什么区别?


当前回答

gitstashpop应用顶部隐藏的元素并将其从堆栈中移除。git stash apply也会这样做,但会将其留在stash堆栈中。

其他回答

得到了这个有用的链接,说明了区别,正如约翰·兹温克(John Zwinck)所说,以及git stash pop的缺点。

例如,假设您隐藏的更改与自首次创建隐藏以来所做的其他更改冲突。pop和apply都将有助于触发合并冲突解决模式,使您能够很好地解决此类冲突……而且两者都不会消除隐藏,即使您可能也期待pop。由于很多人都希望储藏物只是一个简单的堆叠,这往往会导致他们后来意外地弹出同一个储藏物,因为他们认为它已经不见了。

链接:http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/

gitstashpop应用顶部隐藏的元素并将其从堆栈中移除。git stash apply也会这样做,但会将其留在stash堆栈中。

In git stash是一个可以移动当前更改文件的存储区域。

当您想从git存储库中提取一些更改并检测到git repo中可用的一些共同文件中的一些更改时,隐藏区域非常有用。

git stash apply //apply the changes without removing stored files from stash area.

git stash pop  // apply the changes as well as remove stored files from stash area.

注意:-git apply只应用存储区中的更改,而git pop apply则应用并从存储区中删除更改。

假设不会抛出错误,并且您希望处理可用存储列表中的顶部存储项:

gitstashpop=gitstashapply+gitstashdrop

你可以用同样的方式思考,这就是我学习的方式:

gitstashpop->ctrl+x,ctrl+v(剪切粘贴)

git stash apply->ctrl+c,ctrl+v(复制并粘贴)