📅  最后修改于: 2023-12-03 15:41:27.334000             🧑  作者: Mango
在开发时,我们常常会需要暂时保存一些未提交的修改,以解决一些紧急问题,比如切换到其他分支工作,或者合并代码。此时,Git stash 的功能就显得尤为重要了。通过 git stash
命令,我们可以将修改临时保存在一个栈中,以便后续操作。
但是,当我们在多个stash中保存了不同的修改,需要提取某一个具体的stash中的内容时,就需要用到 git stash apply
或 git stash pop
命令了。本文将介绍如何通过命令行获取以前的Git stash。
git stash list
命令在获取以前的 Git stash 之前,我们需要查看当前有哪些 stash。我们可以通过 git stash list
命令来列出所有的 stash 列表。它会显示包含所保存的修改的消息和 stash ID,如下所示:
$ git stash list
stash@{0}: WIP on branch-name: 23e0b17 commit message
stash@{1}: WIP on branch-name: 23e0b17 commit message
从结果中可以看出,我们有两个 stash,它们的 ID 分别为 stash@{0}
和 stash@{1}
,而 WIP on branch-name: 23e0b17 commit message
则是我们在 stash 时所添加的提示信息。
git stash apply
命令git stash apply
命令会将指定stash中所保存的修改应用于当前分支,但不会将 stash 从堆栈中弹出。举个例子,假设我们需要获取 stash@{1}
中保存的修改,我们可以使用如下命令:
$ git stash apply stash@{1}
运行该命令后,我们会发现当前工作区的代码已经被修改为指定的 stash 内容。
git stash pop
命令git stash pop
命令与 git stash apply
命令非常类似,不同的是,它会将指定的 stash 所保存的修改应用于当前分支,并将该 stash 从堆栈中弹出。如下所示:
$ git stash pop stash@{1}
在运行完该命令后,我们会发现当前工作区已经被修改为指定的 stash 内容,并且该 stash 已经从堆栈中删除。
通过 git stash
命令,我们可以轻松地在工作时暂时存储修改,以便在将来某个时间点恢复使用。通过本文所介绍的 git stash list
、git stash apply
和 git stash pop
命令,我们可以更加灵活地操作 stash,以便达到更好的开发效果。