Git 暂存stash命令使用

教程分享 > 软件使用 (145) 2024-07-24 11:24:38

stash命令作用

stash 命令能够将还未 commit 的代码暂存起来,让你的工作目录变得干净,同时讲解idea中stash界面使用操作。

应用场景

某一天你正在 dev (同时你的dev分支是先于当前master分支,或者说你修改的内容和master有相同的文件之类的)分支开发新需求,突然产品经理跑过来说线上有bug,必须马上修复。而此时你的功能开发到一半,于是你急忙想切到 master 分支,然后你就会看到以下报错:

Git 暂存stash命令使用_图示-3f6703e9b23c4e57ae12c2ee92228b34.png
直接切换报错,提示让你线commit再切换

因为当前有文件更改了且和master有冲突或者相同文件被其他人改过,需要提交commit保持工作区干净才能切分支。由于情况紧急,你只有急忙 commit 上去,commit 信息也随便写了个“暂存代码”,于是该分支提交记录就留了一条黑历史...(真人真事,看过这种提交),如果你学会 stash,就不用那么狼狈了。

 

stash命令使用

git stash

就这样,当前修改的代码就被暂存了

Git 暂存stash命令使用_图示-504e840cca4640348a7ebcfce594257f.png

执行命令后可以看见修改过的文件已经还原了。这个时候就可以随意切换分支了。

Git 暂存stash命令使用_图示-eb45f080803f4e00b205473b552682d4.png
分支切换测试

按应用场景,当你修复完成master分支bug,切换会dev,恢复代码则执行下面命令

git stash apply
Git 暂存stash命令使用_图示-fa7ee3ffb0f74bf6ae44ec8c73e5f7bc.png
stash恢复代码

可以看到,之前修改的代码恢复了,以及修改的文件状态也变为了git的修改待提交状态,这时候又可以继续写dev内容了。

# 保存当前未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

当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:

$ git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
stash@{2}: On ...

应用第二条记录:

$ git stash apply stash@{1}

pop,drop 同理。

 

Idea上使用stash

 

idea使用界面操作stash暂存代码

 

Git 暂存stash命令使用_图示-8f341cb5899546528bb8e32b87456871.png
执行命令前的修改内容和文件状态

鼠标对项目进行右键,打开菜单选择 git→Stash Changes…

Git 暂存stash命令使用_图示-1a19770f1936439cae3611f7c9de58df.png

弹出stash的创建对话框,并提示输入备注内容

Git 暂存stash命令使用_图示-fc24d9bbf82b4a5888de558d55271fdf.png
填写备注

创建后会右下角提示创建成功:

Git 暂存stash命令使用_图示-63b3105fcd724c2095c7a69ad4dcf492.png
提示创建成功

再次查看项目文件

Git 暂存stash命令使用_图示-f53a1d777c8d472e8198ddfc3ae49065.png
可以看到文件已经还原

idea界面操作和git命令操作的stash效果一致。

 

idea使用界面操作恢复stash代码

对项目进行鼠标右键,弹出菜单选择 Git→Unstash Changes…

Git 暂存stash命令使用_图示-412889a5916340f0a05551e5f46735b6.png
Git 暂存stash命令使用_图示-121e8ab7d3a7472e82f953d87d484fcf.png
这里选择第一个版本,由于之前命令保存了一些,所以这里能看见多个暂存版本

注意:drop 删除一个暂存分区,删除后就没了哟,clear:清空所有版本,删除所有暂存内容,没了哟,这两个操作需谨慎。

从操作界面来看,idea支持将暂存内容版本直接作为一个新分支创建。

 

https://www.leftso.com/article/2407241015519672.html

相关文章
stash命令作用stash 命令能够将还未 commit 的代码暂存起来,让你的工作目录变得干净,同时讲解idea中stash界面使用操作。应用场景某一天你正
设置好idea的SQL数据库类型,以便于idea工具提供准确的语法提示。该方法也就是解决idea SQL语法提示不准确问题的解决方法。 打开设置菜单File-&gtl;