Git 暂存stash命令使用

编程教程 > Softwares (326) 2024-11-26 14:39:04

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支持将暂存内容版本直接作为一个新分支创建。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
stash命令作用stash 命令能够将还未 commit 的代码暂存起来,让你的工作目录变得干净,同时讲解idea中stash界面使用操作。应用场景某一天你正
idea git合并代码说 please tell me who are you..  
处理回滚有两种方案是软回滚,保留中间的git记录,让最新的commit代码与所选恢commit复版本相同。硬回滚,直接干掉所选回滚记录前的所有commit记录方法一(软回滚)(正式多人项目推荐)...
    // 删除本地分支 git branch -d localBranchName // 删除远程分支 git push origin --delete remoteB...
git版本需要大于2.28.0 执行命令 git config --global init.defaultBranch main 搞定
ideagit回滚版本
背景该方式用于合并代码非常有用步骤1:拉取需要合并的分支到本地 步骤2:Merge 提示:不要直接点右下角的分支,"Merge into current",该操作会合并后自本地提交
问题描述git 提交代码报错 :error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413导致原因1. 本...
Commit message 场景格式规范每次提交,Commit message 都包括三个部分:header,body 和 footer。<type&gtl;(<sc
设置好idea的SQL数据库类型,以便于idea工具提供准确的语法提示。该方法也就是解决idea SQL语法提示不准确问题的解决方法。 打开设置菜单File-&gtl;
演示项目源码下载:(访问密码:9987)spring-cloud-config-server-git.zip微服务方法现在已经成为任何新 API 开发的行业标准,几乎所有组织都在推广它
idea是继eclipse后又兴起的一款优秀的Java编程IED,本文主要讲解idea如何更换/下载主题1.下载主题在主题网站上IDEA Color Theme
idea 2021.3打开maven项目闪退问题查看idea日志,发现报错:idea闪退日志大概意思就是maven的pom.xml文件里面包含了非法字符:冒号,经查看,项目名称<name&...
创建Copyright Profile打开IDEA设置,依次进入 Editor→Copyright→Copyright Profiles如上图所示,点击Add