我的编程空间,编程开发者的网络收藏夹
学习永远不晚

gitstash的正确用法详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

gitstash的正确用法详解

概述

前段时间突然发现,我之前对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用法的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

gitstash的正确用法详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

gitstash的正确用法详解

这篇文章主要为大家介绍了gitstash的正确用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-06

useCallback和useMemo的正确用法详解

这篇文章主要为大家介绍了useCallback和useMemo的正确用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-15

js indexOf 的正确用法示例详解

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,这篇文章主要介绍了js indexOf 的正确用法,需要的朋友可以参考下
2023-02-05

详解ubuntu安装opencv的正确方法

本文介绍的是如何安装ubuntu下C++接口的opencv1.安装准备: 1.1安装cmakesudo apt-get install cmake1.2依赖环境sudo apt-get install build-essential lib
2022-06-04

Java中Optional的正确用法与争议点详解

这篇文章主要介绍了Java中Optional的正确用法与争议点的相关资料,需要的朋友可以参考下
2022-11-13

详解 MySQL中count函数的正确使用方法

1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句select count(*) from table;其实count函数中除了*还可以放其他参数,比如常数、主键id、字段,那么它们有什么区别?各自效率如
2022-05-17

详解Flutter中key的正确使用方式

这篇文章主要为大家介绍了详解Flutter中key的正确使用方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-28

如何正确使用Android线程详解

前言 对于移动开发者来说,“将耗时的任务放到子线程去执行,以保证UI线程的流畅性”是线程编程的第一金科玉律,但这条铁则往往也是UI线程不怎么流畅的主因。我们在督促自己更多的使用线程的同时,还需要时刻提醒自己怎么避免线程失控。 多线程编程之所
2022-06-06

GO使用Mutex确保并发程序正确性详解

这篇文章主要为大家介绍了GO使用Mutex确保并发程序正确性详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-03

git diff正确用法

作为一位程序员,Git对我们来说几乎是必不可少的一款工具。Git作为一个版本控制系统,帮助我们管理文件的修改和版本的追溯,特别是在开发大型软件项目时,Git可以帮助管理团队成员之间的代码合并,避免了冲突和代码丢失等问题。而在Git中,dif
2023-10-22

详解Android studio中正确引入so文件的方法

相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式。Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应
2023-05-30

java 中ThreadLocal 的正确用法

java 中ThreadLocal 的正确用法用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically pr
2023-05-31

Go - 使用 pgtypes 的正确方法

php小编西瓜今天为大家介绍一种正确的使用 pgtypes 的方法,这对于使用 Go 语言进行 PostgreSQL 数据库编程的开发者来说非常重要。pgtypes 是一个 Go 语言的库,它提供了与 PostgreSQL 数据库类型之间的
Go - 使用 pgtypes 的正确方法
2024-02-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录