温馨提示
该文章距离上次更新已经过去了 1344 天,文章内容可能已经过时。

描述
官方解释
当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。
stash 命令能够将还未 commit 的代码存起来,例如一个功能还在开发中,需要临时去处理一个bug,可以先将当前的代码用 stash 储存起来,之后处理完bug后,在通过stash恢复之前的代码
stash相关命令
# 保存当前未commit的代码
git stash
# 保存当前未commit的代码并添加备注
git stash save "备注的内容"
# 所有stash的记录
git stash list
# 删除stash所有记录
git stash clear
# 应用最后一次stash
git stash apply
# 应用最后一次stash,之后删除该记录
git stash pop
# 删除最后一次stash
git stash drop
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
git stash save
git stash save '测试stash'
1
1
1
1
1
1
1
1
1
执行git stash后,当前修改的代码就被储存起来,之后就可以切换到其它分支
git stash list
查看当前被stash的列表

git stash apply
应用最后一次stash
git stash pop
应用最后一次stash,和 git stash apply 不同的是 git stash pop 在应用之后会删除stash记录

git stash drop
删除最后一次stash
git stash clear
删除stash所有记录
指定stash
apply、pop和drop都可以指定想到的stash

例如:想恢复stash@{0}(在vscode中执行会报错)
git stash apply stash@{0}
1
1
1
1
1
1
1
1
1
pop 和 drop 同理