首页 > 其他 > 详细

Git Stash实践操作

时间:2020-08-14 02:01:53      阅读:58      评论:0      收藏:0      [点我收藏+]

不知道大家有没有遇到这样的情况:为了本地部署测试环境,修改了某些文件,然后去git pull的时候,发现仓库里的代码和本地修改的文件有冲突。这时大家会怎么做?

  • 方法一:把本地修改的git add,push到仓库去。
  • 方法二:把本地修改的git checkout,放弃本地修改。

上面两种常规做法都是可行的。但是如果既不想把这些修改放到仓库,又不想每次拉代码前放弃本地修改呢?这时候当当当当~~~git stash可以帮上忙!

我们先来看看git stash有哪些命令吧:

技术分享图片

stash的意思是: 存放; 贮藏; 隐藏。那么我们可以理解了:这个命令就是要执行一个存储相关的操作。

接下来我们一步步通过实践来看看git stash是如果工作的吧。

一、准备实践环境,制造文件merge冲突

  • 在本地修改了两个文件“a.txt”和“c.txt”。还新加了一个文件“b.txt”,删除了“d.txt”.
  • 同时在仓库里直接修改了"a.txt"

技术分享图片

二、执行git stash save操作

  • 执行了git stash save之后,可以看到将修改的文件存储到了堆栈里。
  • 再次git status,发现之前本地修改的内容已经没有了。(这里也可以看出git stash不会把本地新增的文件存储进去,而只是存储修改的和删除的文件

技术分享图片

三、拉新代码后将存储的本地文件覆盖回来

  • 拉新代码:git pull
  • 再将上一步存储的文件pop出来 (git stash pop
  • 发现冲突,按照常规的冲突解决办法解决冲突即可。(这种情况下stash的备份还是存在,需要执行git stash drop stash@{0}即可

完成!

 

温馨提示:

git stash pop:执行完成后没有冲突的情况下,stash栈里会清空;

git stash apply stash@{n}: 会拿取指定的栈内备份而不删除栈内数据。

根据需求用即可。

Git Stash实践操作

原文:https://www.cnblogs.com/jackolantern/p/13426053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!