美文网首页
Git Stash命令

Git Stash命令

作者: 伊凡的一天 | 来源:发表于2017-12-15 14:55 被阅读33次

        常常有这样一种情况,你在你自己的分支上进行工作,这时另一个分支有一个问题需要你去处理,此时需要离开你自己的分支切换到目标分支,因此你运行了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的选项来告诉命令重新应用被暂存的变更。如果你是这么做的,你应该已经回到你原来的位置。

    相关文章

      网友评论

          本文标题:Git Stash命令

          本文链接:https://www.haomeiwen.com/subject/ryorwxtx.html