📜  git stash apply specific stash - Shell-Bash (1)

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

使用 git stash apply 恢复指定的 stash

有时候在开发过程中,我们需要临时切换到其他分支或者处理其他任务,但是又不想提交当前正在进行的工作,这时候就可以使用 git stash 命令将当前工作暂存起来。当我们需要继续工作时,可以使用 git stash apply 命令恢复之前暂存的工作。本文将介绍如何使用 git stash apply 恢复指定的 stash。

命令语法
git stash apply [<stash>]

其中 <stash> 是可选的参数,表示要恢复的 stash 的索引。如果未指定 <stash>,则会默认恢复最新的 stash。

恢复指定的 stash

假设我们当前的工作目录是在 feature 分支上,我们在该分支上进行了一些工作,但是还没有提交。现在需要切换到 main 分支上处理一些紧急任务,但是又不想提交当前未完成的工作。这时候,我们可以使用 git stash 命令将当前工作暂存起来。

$ git stash
Saved working directory and index state WIP on feature: abcd123 Some work in progress

此时,我们可以切换到 main 分支进行紧急任务的处理,处理完后,恢复之前暂存的工作。如果之前只 stash 了一次,那么可以直接执行 git stash apply 命令恢复最新的 stash。

$ git stash apply

但是,如果之前有多个 stash,我们需要恢复指定的 stash,就需要使用 <stash> 参数。首先可以使用 git stash list 命令查看所有的 stash:

$ git stash list
stash@{0}: WIP on feature: abcd123 Some work in progress
stash@{1}: WIP on feature: efgh456 Some more work in progress

以上命令输出了所有 stash 记录的信息。第一列是 stash 的索引,第二列是 stash 的描述信息。

假设我们需要恢复索引为 {1} 的 stash,可以使用以下命令:

$ git stash apply stash@{1}

这样就会恢复索引为 {1} 的 stash。如果我们需要删除该 stash 记录,可以使用 git stash drop 命令:

$ git stash drop stash@{1}
小结

使用 git stash apply 命令可以恢复之前暂存的工作。如果之前只 stash 了一次,可以直接执行 git stash apply 命令恢复最新的 stash。如果之前有多个 stash,需要使用 <stash> 参数指定要恢复的 stash 的索引。恢复完成后可以使用 git stash drop 命令删除该 stash 记录。