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

相关推荐
子兮曰2 分钟前
深入浏览器指纹:Canvas、WebGL、Audio是如何暴露你的身份的?
前端·浏览器·canvas
月亮补丁4 分钟前
AntiGravity只能生成 1:1 图片?一招破解尺寸限制
前端
何中应8 分钟前
MindMap部署
前端·node.js
boooooooom9 分钟前
Pinia必学4大核心API:$patch/$reset/$subscribe/$onAction,用法封神!
javascript·vue.js·面试
NAGNIP11 分钟前
程序员效率翻倍的快捷键大全!
前端·后端·程序员
一个网络学徒14 分钟前
python5
java·服务器·前端
tiantian_cool15 分钟前
Claude Opus 4.6 模型新特性(2026年2月5日发布)
前端
0思必得020 分钟前
[Web自动化] Selenium获取元素的子元素
前端·爬虫·selenium·自动化·web自动化
不会敲代码123 分钟前
解密JavaScript内存机制:从执行上下文到闭包的全景解析
javascript
用户57573033462426 分钟前
🌟 从一行 HTML 到屏幕像素:浏览器是如何“画”出网页的?
前端