Git Stash命令

    常常有这样一种情况,你在你自己的分支上进行工作,这时另一个分支有一个问题需要你去处理,此时需要离开你自己的分支切换到目标分支,因此你运行了checkout命令,产生如下问题:

git checkout

由于checkout会覆盖工作区和暂存区,因此git检测到你有未提交的修改,进行提示。

此时你自己进行开发的分支上的代码还没有完成,因此你不想进行提交,这时你就可以使用stash命令对你的修改进行储藏

1. 首先查看status, 可以看到工作区有未add的修改,因此checkout命令会失败:

git status

2. 在你进行开发的分支下运行git stash命令:

git stash

3. 运行git stash后,查看当前分支的状态,发现工作区和暂存区都没有待处理的修改了,这时因此git将正在进行中的工作暂存在了stash栈中:

git status

4. 此时,你可以方便的切换到其他分支进行工作了,你在此分支上的所有未提交的变更都保存在stash栈中。使用git stash list命令可以查看stash栈中所有的暂存变更:

git stash list

5. 当你临时的工作处理完了,回到自己开发的分支,希望重新恢复之前的工作,此时只需要运行git stash apply命令,此命令会自动恢复stash栈栈顶的工作:

git stash apply

6. 如果你希望恢复更早之前的储藏,可以通过git stash apply stash@{1}命令来恢复名为stash@{1}的储藏。

7. 运行git stash apply会将栈顶的储藏恢复,这意味着你曾经的文件变更会恢复到你储藏之前的状态,然而这只是针对工作区而言的,暂存区的文件并不会恢复。如果你希望暂存区的文件也恢复,你必须在运行git stash apply命令时带上一个--index的选项来告诉命令重新应用被暂存的变更。如果你是这么做的,你应该已经回到你原来的位置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在git上我们可以随意切换分支并提交,这给我们的工作带来极大便利。 比如假设你在dev分支上进行开发,但是平时你们...
    伽马星系阅读 3,660评论 0 0
  • 简介 默认情况下, git stash 命令会把以下修改存储到一个新的堆栈中。堆栈中的内容(stash)可以被所有...
    夏天的技术博客阅读 3,440评论 0 0
  • 1、使用场景 在远程仓库拉取代码之后,需要修改仓库中的某些配置文件才能够正常将工程运行起来。但是,改动后的文件会影...
    SpaceCat阅读 13,570评论 1 3
  • 当你想切换分支时,但工作区已经修改过了,如果你想切换分支,那么很遗憾,git会报错。这时候git stash 命令...
    CoderShmily阅读 7,421评论 0 1
  • 当你想要保存当前的暂存区和工作区的状态的时候,你可以使用git stash命令。比如:你正在开发一个新功能,写了一...
    xingou阅读 18,770评论 0 4