刚学的 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 分钟前
CSS 浮动与定位以及定位中z-index的堆叠问题
前端·css·开源
Stringzhua17 分钟前
JavaScript入门【3】面向对象
javascript
2501_9153738824 分钟前
Vue路由深度解析:Vue Router与导航守卫
前端·javascript·vue.js
小妖66629 分钟前
前端表格滑动滚动条太费事,做个浮动滑动插件
前端
读心悦37 分钟前
5000 字总结CSS 中的过渡、动画和变换详解
前端·css·tensorflow
__BMGT()41 分钟前
C++ QT 打开图片
前端·c++·qt
仍然探索未知中1 小时前
前端扫盲HTML
前端·html
Brilliant Nemo2 小时前
Vue2项目中使用videojs播放mp4视频
开发语言·前端·javascript
酷爱码2 小时前
Linux实现临时RAM登录的方法汇总
linux·前端·javascript
LuckyLay2 小时前
Vue百日学习计划Day16-18天详细计划-Gemini版
前端·vue.js·学习