Intellij idea git stash 使用

IDEA之Git分支以及Stash使用

最近漂到北京接手一个新的项目,项目使用的是spring boot和spring cloud。版本控制软件使用的是git,这对一个长期使用svn的coder有着不小的冲击,此次文章记录的是git中 stash的使用。

应用场景

当在多人开发中,使用 git add-> git commit-> git pull ->git push 三板斧通常有可能在git pull 的时候造成代码冲突。

解决方案

我们们可以使用git stash 来缓存本次本地仓库的新增和提交,让代码回到上一次从远程仓库pull代码的状态,然后我们再从远程仓库pull代码。
在这里插入图片描述
在弹出页面,填写相关备注,然后点击 Create Stash 创建stash。
在这里插入图片描述
此时我们的测试stash就创建完成了,这时本地的代码就回到了上一次push变更之前的状态了,这时我们再pull代码下来就没有冲突了。

代码pull下来后我们要在这份代码中加入我们的修改,这时我们使用Unstash Changes 。就会将我们本次的修改加入,不出意外的话应该会提示冲突,这时候我们就按步解决冲突文件就行,该留的留,该删的删。
在这里插入图片描述
其实解决冲突的方式有很多种,这里只是提供了使用stash方向的思路。stash还有很多妙用,比如我们可以利用stash任意的切换分支去修改代码而不造成影响,具体步骤如下。

我们又接到一个新的需求,正在 dev 分支进行开发,开发还未完成。
突然线上出现 bug,需要我们紧急进行修改,于是我们要基于最新的 master 分支新建一个 bug 分支,需要先切换到 master 分支,但是当前分支的代码没有commit, 如果直接切换到 master 分支的话,dev 分支上的新增代码就会跑到 master 分支,而代码又不能此时 commit ,于是就轮到 stash 出场了。

Stash 会保存当前工作进度,会把暂存区和工作区的改动保存起来。

添加备注,选择 CREATE STASH。你会发现当前工作区内的代码被恢复成了原样。
此刻切换到 master 分支,并创建 bug 分支进行修复 bug,修复完成后合并到 master 分支并 push 到远程仓库,上文已经演示如何合并,在此不再赘述。

将 bug 与 master 合并完成之后,现在要接着写 dev 需求代码,首先先切换到 dev 分支;
但是之前的代码已经被我们放到了 git 的 stash 当中,我们现在要把代码还原到工作区当中。
选择 Unstash Changes

选择之前保存的,同时勾选 Pop stash(还原完成后,会自动删除这个 stash),确定后,工作区之前写的代码就又回来了。

### Intellij IDEAGit Stash 使用教程 #### 1. 场景描述 在多人协作开发环境中,经常会在完成当前任务的情况下接到紧急需求或发现线上Bug。此时如果直接切换分支可能会导致不必要的代码混合问题。Git Stash 功能允许开发者临时保存尚准备好提交的工作进展。 #### 2. Git Stash 的基本概念 `git stash` 是一种用于暂时存储更改的方法,它能够将工作目录和索引中的改动保存到堆栈中而不创建新的提交记录[^2]。这意味着即使是在中途产生的变更也可以被安全地搁置一边直到需要的时候再取出来继续处理。 #### 3. 如何在 IntelliJ IDEA 中应用 Git Stash? ##### 执行 `git stash` - **通过菜单栏**: 可以选择 VCS -> Git -> Stash Changes 来执行此操作。 - **快捷键方式**: Windows/Linux 上通常是 Ctrl+Shift+A 输入 "Stash" 并按 Enter 键;MacOS 用户则是 Command+Shift+A 后同样输入关键词并确认。 一旦选择了上述任一途径之后,IDE 将自动检测是否有任何待处理的变化,并询问是否要将其放入仓库中。点击 OK 即可完成 stashing 过程[^3]。 ##### 查看已储存的状态 为了管理多个不同的 stash 记录: - 转至 VCS -> Git -> Show History 或者使用相应的工具窗口(Alt+9),这里可以找到所有的历史记录列表。 - 在弹出的历史视图里寻找名为 “Stashes”的部分,从中可以选择特定条目查看详情或是恢复选定项下的变动。 ##### 应用/删除某次 stash 当想要重新加载之前隐藏起来的数据时, - 对应于目标 stash 行右键单击,“Apply selected changes...”选项将会帮助实现这一点; - 如果不再需要该 stash,则可以通过同样的上下文菜单里的“Drop Selected Entries”来移除它们。 ```bash # 示例命令行操作 git stash list # 显示所有 stash git stash apply # 恢复最新的 stash 不改变 stash 列表 git stash pop # 恢复最新的 stash 并从列表中移除 git stash drop # 删除指定的 stash,默认是最上面的一个 ``` #### 4. 结合实际案例说明其价值所在 假设正在 feature 分支上忙碌着新特性开发期间遇到了突发情况——比如生产环境出现了严重错误急需修复。利用 git stash 技术就能快速响应这一状况:先保存现有进度,转去 master/main 支线着手解决问题,事后还能轻松返回原先位置无缝衔接先前的任务流[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值