Git stash

今天在一个情境下,假如我们在一个分支下做开发,但还没开发完成,master出现严重问题需要优先处理,此时我们直接git checkout master,切换到master的同时,会发现我们还没开发完分支的修改也被加到master的working directory,这当然不是我们所预想的,所以我们需要将手边的分支开发暂停并且进行储存

而此时我们可利用git add => git commit,然后就可放心至master分支进行修复问题,而后也能在回到我们开发中的分支,利用git commit  -- amend对最后的一次commit进行修改。

而我们也可利用另一个较为简单的方法git stash。
首先我们在一个分支下创建一个新的档案,并且修改一个原已存在在分支中的档案,并且都无commit,利用git status查看,可发现新建档案的修改在working directory,而原档案的修改的在staging area。

http://img2.58codes.com/2024/20126182o2WbCL5HXC.png

利用git stash save可将我们当前还没commit的修改都暂存起来预设只会储存tracked files,如果要暂存untracked files,可透过git stash save --include-untracked

http://img2.58codes.com/2024/20126182rOzK8iQM5t.png

git stash list:可查看暂存区有多少commit。
git stash -h:可查看指令的提示。

http://img2.58codes.com/2024/20126182cLFznvMuBV.png

git stash pop:可将暂存区的commit取出来,而架构是先进后出,可发现我们第一次所取出来的为untracked file也就是我们第二次储存的修改。

http://img2.58codes.com/2024/20126182Heg9G3Pm54.png

注意stash是存在于local,当我们local的环境消失或是电脑坏掉,那stash所存的修改也会消失,所以stash比较适合短时间内的保存,所以保险作法还是直接commit暂时push至远端,需要时在拉下来比较安全。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章