git stash详解

git stash详解应用场景 1 当正在 dev 分支上开发某个项目 这时项目中出现一个 bug 需要紧急修复 但是正在开发的内容只是完成一半 还不想提交 这时可以用 gitstash 命令将修改的内容保存至堆栈区 然后顺利切换到 hotfix 分支进行 bug 修复 修复完成后 再次切回到 dev 分支 从堆栈中恢复刚刚保存的内容 2 由于疏忽 本应该在 dev 分支开发的内容 却在 master 上进行了开发 需要重新切回到 dev 分

应用场景:

命令详解:

1 git stash

能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。

$ git status On branch master Changes not staged for commit: (use "git add 
   
     ..." 
    to update what will be committed) (use "git checkout -- 
   
     ..." 
    to discard changes in working directory) modified: src/main/java/com/wy/CacheTest.java modified: src/main/java/com/wy/StringTest.java no changes added to commit (use "git add" and/or "git commit -a") $ git stash Saved working directory and index state WIP on master: b2f489c second $ git status On branch master nothing to commit, working tree clean

2 git stash save

stash@{ 
  0}: WIP on master: b2f489c second

git stash save “test1”的效果:

stash@{0}: On master: test1

3 git stash list

查看当前stash中的内容

4 git stash pop

$ git stash list stash@{0}: On master: test2 stash@{1}: On master: test1 $ git stash pop On branch master Changes not staged for commit: (use "git add 
   
     ..." 
    to update what will be committed) (use "git checkout -- 
   
     ..." 
    to discard changes in working directory) modified: src/main/java/com/wy/StringTest.java no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (afceacd4e80552d7ab1dad7234edf0145d) $ git stash list stash@{0}: On master: test1

5 git stash apply

将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。

$ git stash apply On branch master Changes not staged for commit: (use "git add 
   
     ..." 
    to update what will be committed) (use "git checkout -- 
   
     ..." 
    to discard changes in working directory) modified: src/main/java/com/wy/StringTest.java no changes added to commit (use "git add" and/or "git commit -a") $ git stash list stash@{ 
  0}: On master: test2 stash@{ 
  1}: On master: test1

6 git stash drop + 名称

从堆栈中移除某个指定的stash

7 git stash clear

清除堆栈中的所有 内容

8 git stash show

查看堆栈中最新保存的stash和当前目录的差异。

$ git stash show src/main/java/com/wy/StringTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
$ git stash show -p diff --git a/src/main/java/com/wy/CacheTest.java b/src/main/java/com/wy/CacheTest.java index 6e90837..de0e47b  --- a/src/main/java/com/wy/CacheTest.java +++ b/src/main/java/com/wy/CacheTest.java @@ -7,6 +7,6 @@ package com.wy; */ public class CacheTest { public static void main(String[] args) { - System.out.println("git stash test"); + System.out.println("git stash test1"); } } diff --git a/src/main/java/com/wy/StringTest.java b/src/main/java/com/wy/StringTest.java index a7e146c..711d63f  --- a/src/main/java/com/wy/StringTest.java +++ b/src/main/java/com/wy/StringTest.java @@ -12,7 +12,7 @@ public class StringTest { @Test public void test1() { - System.out.println("================="); + System.out.println("git stash test1"); System.out.println(Strings.isNullOrEmpty(""));//true System.out.println(Strings.isNullOrEmpty(" "));//false System.out.println(Strings.nullToEmpty(null));//""

同样,通过git stash show stash@{1} -p查看指定的stash的差异内容。

9 git stash branch

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200172.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:23
下一篇 2026年3月20日 上午11:24


相关推荐

  • 可外链相册大合集!

    可外链相册大合集!博主个人的贴图策略是:本地照片上传用Photobucket收集网页上的照片用poco。(这两个工具在第6和第12项有介绍),并在此强烈鄙视一下,所谓的外联吧,如果不是开淘宝店,就不要用。刚开始用,感觉不错和Photobucket 一样好用,也号称免费,可是一个多月后图片全被封了,然后告诉我不交钱,图片永远不能用!!博主好不容易上传,贴图,加整理的博文就这样被无情地毁了。,强烈抗议这种欺骗消费者的行

    2022年6月15日
    50
  • 不含重复字符的最长子串长度JAVA_字符串回文判断

    不含重复字符的最长子串长度JAVA_字符串回文判断给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 “010” 和 “1010” 属于交替字符串,但 “0100” 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = “111000”输出:1解释:交换位置 1 和 4:”111000″ -> “101010” ,字符串变为交替字符串。示例 2:输入:s =

    2022年8月9日
    11
  • 怎么部署OpenClaw?2026年京东云搭建基础教学

    怎么部署OpenClaw?2026年京东云搭建基础教学

    2026年3月15日
    3
  • 配置 OpenClaw 聯網搜索的 3 種方法:讓你的個人助理更強大

    配置 OpenClaw 聯網搜索的 3 種方法:讓你的個人助理更強大

    2026年3月13日
    2
  • 做电商网站服务器在哪里,电商网站服务器如何选择「建议收藏」

    做电商网站服务器在哪里,电商网站服务器如何选择「建议收藏」网络上的电商人数越来越多,那么现在我们做电商还有的做嘛!其实,还是有机会的,这里面有两个关键点,一是所提供的产品及服务、另一个是别人访问我们网站时的感觉,也就相关到电子商务网站网站服务器。使用电子商务网站网站服务器前提,做好网络市场环境分析网络市场的贸易方式有多种,B2B、B2C、B2G、C2C、O2O等,每位卖方都是借助这些方式使用网络工具在网络上进行产品的宣传推广,展现自家产品,提供给所需的…

    2022年9月30日
    4
  • 用c#实现简单的登录和注册功能

    用c#实现简单的登录和注册功能这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。首先用sqlserver建表。我建了一个名为user_info的表,添加username和passdword两个字段。创建登录页面,改了一些控件的名称,效果如下图:登录界面代码如下:privatevoidbtn_Login…

    2022年8月22日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号