📅  最后修改于: 2023-12-03 15:15:18.708000             🧑  作者: Mango
有时候在开发过程中,我们需要临时切换到其他分支或者处理其他任务,但是又不想提交当前正在进行的工作,这时候就可以使用 git stash
命令将当前工作暂存起来。当我们需要继续工作时,可以使用 git stash apply
命令恢复之前暂存的工作。本文将介绍如何使用 git stash apply
恢复指定的 stash。
git stash apply [<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 记录。