git stash的正确用法详解

 更新时间:2023年02月06日 09:21:42   作者:YunfengWang  
这篇文章主要为大家介绍了git stash的正确用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

概述

前段时间突然发现,我之前对git stash的使用都是错误的。

具体说来,我是这么使用的:在远端有新的提交,需要git pull来拉取合并时,发现本地有一些未提交的修改,功能也没实现,不适合做一次commit。这时候我执行git stash隐藏本地的修改,然后执行git pull来拉取远端的更新,在最新代码基础上重新实现stash的那些代码中的功能。

这里的问题是,重新实现stash代码中的那一步,其实完全可以用git stash pop来替代,执行这个命令会在最新代码基础上作用stash的代码,不用再重新实现一遍了(不过这时可能会有代码冲突需要解决)。所以我之前是把git stashgit checkout -- .来用了,也就是抛弃了本地的代码更新,显然是有问题的。

正确流程基本上是这样:

git stash # 或者 git stash push,效果一样
git pull # 可能有冲突需要手动合并
git stash pop # 可能有冲突需要手动合并

下面记录一下 git stash 提供的功能和一些参数。

git stash 具体用法

git stash创建一个新的stash,效果与git stash push 一样,效果如下:

$ git stash
Saved working directory and index state WIP on master: c6771a5 doc: fix error during pre-commiting

增加-u选项可以将未track的文件也隐藏起来。

你可以创建多个stash,最早的stash表示为stash@{0},然后是stash@{1},依次递加。

git stash list 会列出所有的stash:

$ git stash list
stash@{0}: WIP on master: c6771a5 doc: fix error during pre-commiting
stash@{1}: WIP on master: c6771a5 doc: fix error during pre-commiting

git stash show可以查看最新stash中的修改,加上编号可以查看之前版本的修改。

$ git stash show stash@{0}
version.txt | 1 +
 1 file changed, 1 insertion(+)

git stash apply 可以应用最新的stash到当前的代码中,同样的,如果加上编号则可以应用之前版本的修改到当前代码。apply执行后记得调用git stash drop 来去除以及应用的stash。 git stash pop效果等于git stash apply + git stash drop

git stash branch会基于老的提交代码创建一个分支,同时把最新的修改也作用过去,这样对于新的提交和老提交代码变化很大的场景比较好,避免在新的提交上apply stash时由于冲突太多造成的合并问题。

git stash clean 会清空所有的stash,且没有任何提示,这意味着你所有隐藏的代码都会被删除,执行此命令前请三思!

以上就是git stash的正确用法详解的详细内容,更多关于git stash用法的资料请关注脚本之家其它相关文章!

相关文章

  • 快速解决eclipse中注释的代码依然会执行的问题

    快速解决eclipse中注释的代码依然会执行的问题

    下面小编就为大家带来一篇快速解决eclipse中注释的代码依然会执行的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • WebSocket部署到服务器出现连接失败问题的分析与解决

    WebSocket部署到服务器出现连接失败问题的分析与解决

    这篇文章主要给大家介绍了关于WebSocket部署到服务器出现连接失败问题的分析与解决方法,文中给出了详细的介绍供大家参考学习,文末也给出了demo下载地址,需要的朋友们可以下载学习,下面随着小编来一起学习学习吧。
    2017-10-10
  • Postman返回中文乱码的解决方案

    Postman返回中文乱码的解决方案

    使用postman发出请求,返回值含有中文字符串,却发现中文被乱码,本文就详细的介绍一下Postman返回乱码的解决方案,感兴趣的可以了解一下
    2022-01-01
  • 在Linux下搭建Git服务器的方法详解

    在Linux下搭建Git服务器的方法详解

    虽然用Git的人不多,但是git不仅仅是svn等版本控制系统的替换工具,它自己强大的功能,稳定的性能,方便快捷等优点自然不需多说,不了解的人自行去网上查看。本文将会详细介绍在Linux下搭建Git服务器的方法,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 解析在浏览器地址栏输入一个URL后发生了什么

    解析在浏览器地址栏输入一个URL后发生了什么

    作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事
    2021-06-06
  • 教你使用Typora + 阿里云OSS + PicGo 搭建私人图床(最新)

    教你使用Typora + 阿里云OSS + PicGo 搭建私人图床(最新)

    这篇文章主要介绍了教你使用Typora + 阿里云OSS + PicGo 搭建私人图床,我这里使用的是阿里云对象存储OSS,你可以使用腾讯、七牛云对象存储等皆可,需要的朋友可以参考下
    2022-04-04
  • 各类常见语言清除网页缓存方法汇总

    各类常见语言清除网页缓存方法汇总

    这篇文章主要介绍了各类常见语言清除网页缓存方法汇总,包括了常见的html、asp、php与java,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • 如何使用git拉取gitlab上的项目

    如何使用git拉取gitlab上的项目

    这篇文章主要介绍了如何使用git拉取gitlab上的项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Mac M1安装Homebrew的方法步骤

    Mac M1安装Homebrew的方法步骤

    这篇文章主要介绍了Mac M1安装Homebrew的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 几款开源的中文分词系统

    几款开源的中文分词系统

    中文分词是做好中文内容检索、文本分析的基础,主要应用于搜索引擎与数据挖掘领域。中文是以词为基本语素单位,而词与词之间并不像英语一样有空格来分隔,因而中文分词的难点在于如何准确而又快速地进行分词
    2012-11-11

最新评论