当前位置: 首页 > news >正文

北京建设网站公司网站seo顾问培训

北京建设网站公司网站,seo顾问培训,国外优秀设计网站,安卓开发技术作者 | 梁唐来源 | TechFlow(ID:techflow2019)头图 | CSDN 下载自东方IC大家好,今天的文章我们来介绍 git 当中一个非常常用的功能——储藏。大家在协同开发的时候应该都有这样的经历,有的时候我们的功能开发了一半,因为某些原因…
617e92cf20f935fbdadad8b3d05f7269.gif8ac4bc26fe38db6c6aba6e4445008919.png作者 | 梁唐来源 | TechFlow(ID:techflow2019)头图 |  CSDN 下载自东方IC大家好,今天的文章我们来介绍 git 当中一个非常常用的功能——储藏。大家在协同开发的时候应该都有这样的经历,有的时候我们的功能开发了一半,因为某些原因我们想要 checkout 到其他的分支上查看代码或者是执行某个工作。但是如果我们直接执行 checkout,git 会禁止我们的行为。我拿本地的项目举个例子,可以看到当我们执行了 checkout 命令之后,git 提示我们在一些文件的改动会被覆盖,所以拒绝了我们的 checkout 命令。
709a07a665e80557cd794d1d8b13064d.pngimage-20201023084358700
这个时候应该怎么办呢?最好的办法当然是使用 git commit 把改动提交了。但问题是有的时候我们不想提交一些代码,比如还没有经过严谨的测试,或者是我们临时开发的一些测试功能等等。在这种情况下 commit 也是不合适的,即使提交了了,之后在 push 之前也会要把 commit 撤销了。但如果一不小心忘记了,可能就会造成悲剧。针对这个问题,git 提供了一个解决策略就是 stash 功能。62009cc49734fd704acfbc1ad237fa6b.png

储藏改动

git stash 可以将本地还没有提交的改动全部存储起来。接着,我们在之前的某一篇文章当中加上一行 -test stash。我们执行一下 git diff,可以看到这行改动。
40c1fe7da2c8d131ada3dfd3442be224.png
接着我们执行 git stash,会发现我们的 git 目录又回到了没有改动的状态。再执行 git diff 也看不到任何改动了。
41663984d6ba4ebb8f8ef59548d5917a.png
这是因为 git 把我们本地还没有提交的改动都暂存了起来,这样方便我们进行 checkout 或者是其他一些操作,而不会起冲突或者是其他的影响。68bca4c450e505125c5df8a0638927e3.png

应用改动

那么当我们操作完成之后,想要还原刚才暂存起来的内容,这个时候应该怎么办呢?也有办法,我们只需要使用 git stash apply 或者是 git stash pop 这两个命令就可以将刚才暂存起来的内容还原了。但是这里有一个问题,就是 stash apply 和 pop 之间是不同的。这里涉及到 stash 内部的实现机制,stash 内部其实是通过堆栈实现的。pop 对于堆栈而言很明确,就是弹出的意思。也就是说如果我们使用的是 pop,那么当我们 pop 之后,这条记录会在堆栈当中删除。而如果使用的是 apply 呢,记录不会从堆栈当中删除,仍然会保留下来。一般情况下我使用 pop 多一些,但是 pop 也有缺点,比如 pop 没有办法选择应用的记录。我们可以使用 git stash list 来查看一下当前堆栈当中已经有的记录。
01e240d138bce30d8c0cbe4812c3ef63.png
如果我们使用 git stash pop 的话,默认的是应用的栈顶的记录,也就是 stash@{0}。但如果我们使用 stash apply 的话,我们可以自由选择我们想要应用的记录。比如如果我们想要应用最后一条记录的话,我们可以这样:
git stash apply stash@{2}
关于应用储存的修改也有一些细节,首先是储藏和修改对应的分支可以不同。我们可以在一个分支储藏,之后切换到另外一个分支进行应用。并且如果我们在应用之前修改了同样的内容的话,也会引起合并冲突。另外就是当我们应用储藏的时候,会发现我们之前add过的文件又重新回到了未暂存的状态。如果我们想要重新回到文件被暂存的状态时,我们可以使用 index 选项来执行。
git stash apply --index
对于我们已经不想要的储藏记录,我们可以执行 git stash drop 来进行删除。de1fa34cfa5fa6adcb41665f193b3d7f.png

其他技巧

除了上述的功能之外,git stash 还有一些其他的用法。比如 --keep-index 选项,在不加这个选项的时候,当我们使用 git stash,它会把所有没有 commit 的内容全部 stash。但是有的时候我们不希望这样,我们希望它只暂存我们没有add到暂存区的内容。这个时候我们就可以通过这个参数实现。另外一个参数是-u 或者是 --include-untracked,我们从这个名字上也看得出来。它们的意思是在 stash 的时候将新创建并且还没有被 git 管理的文件也一并储藏起来。除此之外,还有--patch 的功能也很常用。patch 我们曾经在上篇文章讲解交互式命令的时候讲到过,它可以将 git 针对的改动缩小到代码而不是文件级别。交互式地和我们操作哪些代码层面的改动需要存储起来,操作方法和上篇文章介绍的一样。大家如果有所遗忘可以在文末找到上一篇的文章进行回顾。
1627f2a6417a3571e35a3668a400994c.png
最后一个功能是从储藏上新建一个分支,有的时候我们先储存了代码之后又继续进行了一些工作。这个时候如果我们再恢复从前的改动则会引起冲突。这个时候我们可以运行 git stash branch 新建一个新的分支,在这个分支上应用我们的提交。
git stash branch applystash
应用成功之后 Git 会自动抛弃掉对应的 stash 记录,非常方便,不过我个人没有用过,因为实际工作当中没有遇到这么复杂的情况。
http://www.lbrq.cn/news/2469277.html

相关文章:

  • 团建拓展网站建设需求分析百度的链接
  • 网站建设周志200字销售管理
  • 来年做啥网站能致富首码项目推广平台
  • wordpress iis7伪静态seo公司排行
  • 建设 静态网站全球十大网站排名
  • 5000人网站开发域名查询注册信息查询
  • 学做网站的学校乔拓云网微信小程序制作
  • 网站上线流程分为seo职位要求
  • 用GIF软件做的GIF 超出网站限制免费信息发布平台网站
  • 成都私人放款联系方式电话优化公司网站排名
  • 就业网站建设总结seo网络推广师招聘
  • 杭州的电商网站建设百度大搜是什么
  • 网站开发的技术意义个人seo外包
  • 朗读者外国人做的汉字网站个人自己免费建网站
  • 公司注册地址可以跨市变更吗广州seo外包公司
  • vue做的商城网站seo是哪个英文的缩写
  • 展厅设计图效果图大全seo比较好的优化方法
  • 电子商务网站建设与管理目录企业推广软文范文
  • 昆山市住房和建设局网站成功的网络营销案例有哪些
  • 做网站需要注册商标多少类电子商务seo名词解释
  • 建设门户网站的重要性邵阳疫情最新消息
  • 九亭做网站友情链接你会回来感谢我
  • wordpress多用户商城系统上海整站seo
  • 如何通过网站做网上报名系统seo技术推广
  • 杭州战争网站建设投资网站建设方案
  • 做网站精英软文写作服务
  • p2p网站制作价格专业网站建设
  • 域名没备案如何建设网站台州关键词优化服务
  • 重庆网上房地产查询备案价裤子seo关键词
  • 给网站可以怎么做外链nba最新排名
  • 秋招Day19 - 分布式 - 理论
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(三)
  • 造成服务器内存不足的原因有什么
  • Apache Flink 实时流处理性能优化实践指南
  • 糖尿病数据分析:血压与年龄关系可视化
  • 如何用 Kafka + Redis + 线程池搭建高吞吐异步消息处理架构