【Git 系列】一个超好用的命令你会用吗?

stash在英文意思是隐藏。 git stash 的作用也是隐藏没完成的代码,防止它干扰 别人或者 新分支的工作。

一、背景

正在 dev 分支开发新功能,做到一半时有人过来反馈一个 bug ,需要马上解决,但是新功能做到了一半你又不想提交。

这时就可以使用 git stash 命令先把当前进度保存起来,然后切换到另一个分支去修改 bug;修改完提交后,再切回 dev 分支,使用 git stash pop来恢复之前的进度继续开发新功能。

看到这里,有些小伙伴就有疑问:没必要啊,修 BUG 的时候,直接切换分支,修改完提交后再切回来到原来的分支不就行了。

  • 比如有情景如下:

  • 如果你试试你再试试:

这时候,我不禁想说: git stash,YYDS !

二、git stash

当你执行 git stash 时会提醒你:

Saved working directory and index state WIP on newF2: b63fbcb add dev_file.txt
HEAD is now at b63fbcb add dev_file.txt。

它已经把 dev_file.txt 保存好了。

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;执行完这个命令后,在运行 git status命令,就会发现当前是一个干净的工作区,没有任何改动。

  1. git stash 是本地的,不会上传到服务器上;
  2. 可以通过使用 git stash save 'message...'可以添加一些注释。

命令名 作用 git stash 隐藏当前的工作现场, 此时, git status的结果是 clean git stash list 查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id git stash apply 重新显示标识为 id 的隐藏 git stash drop git apply恢复隐藏后, 需要手动删除 list 列表中的记录 git stash pop 恢复最新的进度到工作区 git stash pop stash@[stash_id] 恢复指定的进度到工作区

如: git stash pop stash@{1}stash_id是通过 git stash list命令得到的;

三、git stash 使用场景

我在本地修改好后,发现远程分支已经被改动了,此时我本地也被改动了就造成了冲突,无法 push 或者 pull

此时,就可以用 git stash 来处理

// 把本地的改动暂存起来
git stash
// 拉取远程分支(此时本地分支会回滚到上次commit的情况,你的改动都存在stash中)
git pull
// 将stash中改动重新加回本地分支,就可以继续修改了,当然,如果改好了就是add,commit,push
git stash pop

例如忘记切换,将代码写错了分支,直接在 master 分支上做改动,这里假设我的分支是 feature/category_vechice 分支。

// 把本地当前改动暂存起来,此时master分支就恢复到了上次拉取时的状态
git stash
// 切换到需要改动的分支
git checkout test
// 将改动pop到自己当前的分支
git stash pop

四、小结

顾名思义, stash 就是一个栈,平时我们把需要暂存的文件存到栈中,把代码恢复到上次拉取的状态以进行操作。

就我个人使用而言, git stash pop 就已经满足日常需要了,毕竟频繁的线上 bug 或者忘记切代码啥的,我们应该考虑的不是这个命令的问题,是开发质量的范畴了。

Original: https://www.cnblogs.com/VanFan/p/15542582.html
Author: 风尘博客
Title: 【Git 系列】一个超好用的命令你会用吗?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573554/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1. Two Sum——LeetCode

    Given an array of integers, return indices of the two numbers such that they add up to a s…

    Java 2023年6月15日
    066
  • 使用J2EE 登录实例开发

    1)容器加载Servlet类。 当第一次有Web客户请求Servlet服务或当Web服务启动时。 2)创建Servlet对象实例。 容器环境根据客户请求,创建一个或多个Servle…

    Java 2023年6月7日
    074
  • 面向对象—封装

    package com.gao.test.Test3; public class Girl {//女孩 //属性 private int age; //private 私有的 //…

    Java 2023年6月5日
    078
  • JAVA处理Blob大对象

    Blob对象是SQL Blob的Java语言映射。SQL Blob是一个内置类型,它可以将一个二进制大对象保存在数据库中。接口ResultSet、CallableStatement…

    Java 2023年5月29日
    076
  • 合并两个有序列表

    合并两个有序列表 问题重述: 问题分析: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输&a…

    Java 2023年6月7日
    072
  • uboot无法通过nfs加载ubuntu18.04中的文件(转)

    问题描述:i.mx6ull开发板,采用alientek官方维护的uboot,使用ubuntu18.04 lts作为nfs server,导致开发板uboot上nfs命令无法加载网络…

    Java 2023年6月6日
    0120
  • Spring Boot 如何热加载jar实现动态插件?

    一、背景 动态插件化编程是一件很酷的事情,能实现业务功能的 解耦 便于维护,另外也可以提升 可扩展性 随时可以在不停服务器的情况下扩展功能,也具有非常好的 开放性 除了自己的研发人…

    Java 2023年6月6日
    088
  • BlogJava好像不能贴图

    BlogJava好像不能贴图,就贴在这里了. Original: https://www.cnblogs.com/sunsonbaby/archive/2005/05/05/149…

    Java 2023年5月29日
    081
  • Spring Batch 批处理框架

    《Spring Batch 批处理框架》基本信息作者: 刘相出版社:电子工业出版社ISBN:9787121252419上架时间:2015-1-24出版日期:2015 年2月开本:1…

    Java 2023年5月30日
    080
  • 多线程

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    086
  • 记一次k8s部署问题

    问题描述 在k8s master节点按步骤创建成功后,执行从节点的加入操作,发现一直超时无法加入 问题日志 [root@node02 kubernetes-1.14]# kubea…

    Java 2023年6月9日
    0174
  • Mysql学习笔记-InnoDB深度解析

    前言我们在上一篇博客聊了Mysql的整体架构分布,连接层、核心层、存储引擎层和文件系统层,其中存储引擎层作为Mysql Server中最重要的一部分,为我们sql交互提供了数据基础…

    Java 2023年6月5日
    093
  • springboot 测试类编译错误

    测试类需要和引导类处在同名的包下 posted @2022-05-16 13:34 HypoPine 阅读(17 ) 评论() 编辑 Original: https://www.c…

    Java 2023年6月15日
    095
  • java可变参数

    可变参数 用法: public void test(int… i){} //类型后边加… 本质是数组 参考文档: 方法中有多个参数是,可变参数必须放在最后 …

    Java 2023年6月8日
    080
  • Hello World

    新的起点,新的征程,未来可期! posted @2022-07-27 10:57 旅程~ 阅读(10 ) 评论() 编辑 Original: https://www.cnblogs…

    Java 2023年6月8日
    093
  • 记录Feign调用时对LocalDateTime的处理

    feign api调用参数类型为LocalDateTime一直报错,类型转换错误 简单记录一下解决方式吧 调用方 import org.springframework.contex…

    Java 2023年6月8日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球