📜  获取以前的 git stash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:27.334000             🧑  作者: Mango

获取以前的 Git stash - Shell/Bash

在开发时,我们常常会需要暂时保存一些未提交的修改,以解决一些紧急问题,比如切换到其他分支工作,或者合并代码。此时,Git stash 的功能就显得尤为重要了。通过 git stash 命令,我们可以将修改临时保存在一个栈中,以便后续操作。

但是,当我们在多个stash中保存了不同的修改,需要提取某一个具体的stash中的内容时,就需要用到 git stash applygit 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 listgit stash applygit stash pop 命令,我们可以更加灵活地操作 stash,以便达到更好的开发效果。