刚学的 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 是一个非常灵活且强大的命令,可以帮助你在复杂的开发流程中更好地管理未提交的更改。

相关推荐
TitusTong17 分钟前
使用 <think> 标签解析 DeepSeek 模型的推理过程
前端·ollama·deepseek
Hsuna17 分钟前
一句配置让你的小程序自动适应Pad端
前端·javascript
curdcv_po18 分钟前
Vue3移动电商实战 —— 外卖移动端轮播图实现
前端
渔樵江渚上21 分钟前
玩转图像像素:用 JavaScript 实现酷炫特效和灰度滤镜
前端·javascript·面试
hhope21 分钟前
Web江湖之令牌秘籍:Cookie vs LocalStorage,谁才是安全之王?
前端
ak啊22 分钟前
代码生成的核心环节-Template
前端·webpack·源码阅读
陆康永22 分钟前
uniapp-x vue 特性
javascript·vue.js·uni-app
全栈然叔26 分钟前
五分钟部署Manus开源版本地应用
前端·后端
前端_yu小白27 分钟前
uniapp路由跳转导致页面堆积问题
前端·uni-app·页面跳转·返回