刚学的 git stash 命令

git stash 是 Git 中一个非常有用的命令,用于临时保存当前工作目录中的更改,以便切换到其他分支或进行其他操作,而不用担心丢失未提交的更改。以下是关于 git stash 的一些常用命令和使用场景:

1. 保存当前工作目录的更改

复制代码
git stash

或者更明确的命令:

arduino 复制代码
git stash save "描述信息"
  • 这会将当前工作目录中的所有未提交的更改(包括已暂存和未暂存的更改)保存到一个"stash"中,并将工作目录恢复到最近一次提交的状态。
  • 如果添加了描述信息,可以在后续查看 stash 列表时更容易识别。

2. 查看所有 stash 列表

复制代码
git stash list
  • 这会列出所有保存的 stash,每个 stash 都有一个编号(如 stash@{0}stash@{1} 等)。
  • 如果在保存 stash 时添加了描述信息,这里也会显示出来。

3. 恢复某个 stash

  • 应用某个 stash,但保留该 stash:

    kotlin 复制代码
    git stash apply stash@{编号}

    或者默认应用最近的 stash:

    复制代码
    git stash apply
    • 这会将 stash 中的更改应用到当前工作目录,但不会从 stash 列表中删除该 stash。
  • 应用某个 stash 并删除该 stash:

    kotlin 复制代码
    git stash pop stash@{编号}

    或者默认弹出最近的 stash:

    perl 复制代码
    git stash pop
    • 这会将 stash 中的更改应用到当前工作目录,并从 stash 列表中删除该 stash。

4. 删除某个 stash

  • 如果只想删除某个 stash,而不应用更改,可以使用:

    kotlin 复制代码
    git stash drop stash@{编号}
  • 删除所有 stash:

    arduino 复制代码
    git stash clear

5. 查看某个 stash 的详细内容

kotlin 复制代码
git stash show stash@{编号}

或者查看更详细的 diff:

css 复制代码
git stash show stash@{编号} -p

6. 分支切换时的 stash 使用

  • 如果你在当前分支上有未提交的更改,但需要切换到另一个分支,可以先使用 git stash 保存更改,然后切换分支:

    复制代码
    git stash
    git checkout 其他分支
  • 完成操作后,再切换回原来的分支,并恢复 stash:

    perl 复制代码
    git checkout 原分支
    git stash pop

7. 分支合并时的 stash 使用

  • 如果你在合并分支时遇到冲突,也可以先保存当前更改:

    sql 复制代码
    git stash
    git merge 其他分支
  • 解决冲突后,再恢复 stash:

    perl 复制代码
    git stash pop

注意事项

  1. stash 是基于当前分支的:stash 保存的是相对于当前分支的更改,因此在恢复 stash 时最好回到原来的分支。
  2. stash 不影响历史记录:stash 是一种临时保存更改的方式,不会影响 Git 的提交历史记录。
  3. stash 的适用场景:主要用于临时保存未完成的工作,以便切换到其他任务,或者在遇到冲突时保存当前更改。

总之,git stash 是一个非常灵活且强大的命令,可以帮助你在复杂的开发流程中更好地管理未提交的更改。

相关推荐
Neighbor_OldY18 分钟前
【实战复盘】文件上传漏洞检测与应急处置:校验绕过、图片马与WebShell的排查修复指南
运维·前端·web安全
金花顺19 分钟前
android_media_AudioTrack_setup
前端
晓天衡宇•评测社区23 分钟前
Seedance 2.5 登顶图生视频榜单,Wan 3.0 在游戏与教育场景进入前列
前端·javascript·网络
码海无涯回头无岸24 分钟前
Ai agent - LLM是一个函数
前端
Profile排查笔记27 分钟前
指纹浏览器推荐:用一套验收清单筛选 Profile、代理与自动化能力
前端·人工智能·后端·自动化
卡皮巴拉c9927 分钟前
基于pnpm搭建monorepo项目
前端·javascript
jianpeng的工程笔记1 小时前
Colab Kaggle 防断开脚本
javascript·深度学习·kaggle·colab
yume_sibai1 小时前
CSS2 核心知识点完全总结(选择器 + 三大特性 + 常用属性)
前端·css
掘金者阿豪1 小时前
不装 SSH 客户端也能连服务器:用 WebSSH 把终端搬进浏览器
前端
Bug修理工Bubble1 小时前
Optional:为什么一个 String? 能让代码少掉很多崩溃?
前端