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

相关推荐
RaidenLiu6 分钟前
告别陷阱:精通Flutter Signals的生命周期、高级API与调试之道
前端·flutter·前端框架
非凡ghost6 分钟前
HWiNFO(专业系统信息检测工具)
前端·javascript·后端
非凡ghost9 分钟前
FireAlpaca(免费数字绘图软件)
前端·javascript·后端
非凡ghost15 分钟前
Sucrose Wallpaper Engine(动态壁纸管理工具)
前端·javascript·后端
拉不动的猪17 分钟前
为什么不建议项目里用延时器作为规定时间内的业务操作
前端·javascript·vue.js
该用户已不存在24 分钟前
Gemini CLI 扩展,把Nano Banana 搬到终端
前端·后端·ai编程
地方地方25 分钟前
前端踩坑记:解决图片与 Div 换行间隙的隐藏元凶
前端·javascript
炒米233328 分钟前
【Array】数组的方法
javascript
小猫由里香31 分钟前
小程序打开文件(文件流、地址链接)封装
前端
Tzarevich34 分钟前
使用n8n工作流自动化生成每日科技新闻速览:告别信息过载,拥抱智能阅读
前端