在git stash上踩过的坑
git stash 这个东西,使用git进行代码管理的人应该都知道并且用过吧。它呢,就是会将你在当前分支是那个修改的记录缓存起来,放在缓存区里面。模拟具体的使用场景:我现在处于feature-zhang这个分支上,我在这个分支上修改了很多东西但是又没有一个独立的模块,所以我并不想对它进行commit。但是此时我的另外一个分支feature-wang,需要和后台的同学联调一下。这时我就不...
·
git stash 这个东西,使用git进行代码管理的人应该都知道并且用过吧。它呢,就是会将你在当前分支是那个修改的记录缓存起来,放在缓存区里面。
模拟具体的使用场景:
- 我现在处于feature-zhang这个分支上,我在这个分支上修改了很多东西但是又没有一个独立的模块,所以我并不想对它进行commit。
- 但是此时我的另外一个分支feature-wang,需要和后台的同学联调一下。这时我就不得不切换到我的feature-wang的分支上面去。
- 在切换之前呢,我就需要使用git stash命令行将我的修改都现暂存起来。这时候git 就会将我当前分支的修改保存在缓存区域。
- stash list 就可以查看到暂存的记录了。
此时我就可以安心的切换到feature-wang这个分支上了,当我和后台同学联调的过程中,我又修改了一些内容,但是此时我还是不想commit的,那么我还是使用git stash 去将我的操作缓存起来。此时的缓存中就拥有了两条缓记录。 - 当我在切换回feature-zhang这个分支上的时候,我直接使用git stash pop命令行将我的缓存pop出来。
- 但是,注意了!!这个时候就会出现问题,你发现你pop出来的缓存并不是你在这个分支上的操作。你这个分支上会出现其他分支修改的内容。
那么这是为什么呢?
在吃过一个这个亏后,我才明白,git stash缓存的时候,它会将你的记录的存在一个栈里,那么栈的特点就是先进后出,所以你此时pop出来的其实是在feature-wang上的修改记录。那么要怎样才能将我想要的pop出来呢。我们使用git stash list查看缓存记录会发现每一条缓存前面都有一个缓存的序号,我们只需要git stash pop + 对应的序列号就ok了!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)