应用场景:
命令详解:
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
