语法
git stash [命令] [<选项> …]
提示:方括号 [ ]
表示可选,...
表示可以有多项。
描述
命令 git stash 可以保存和恢复工作进度(工作区和暂存区)。
git stash
相当于 git stash push ,保存当前工作区和暂存区的进度,同时使用 HEAD 重置工作区和暂存区。
命令
push [-m <描述>] [--] [<路径>]
保存当前工作区和暂存区的进度,同时使用 HEAD 重置工作区和暂存区。
save [<描述>]
已经被 push 命令取代,save 命令不接受路径。
list [<log选项>]
列出所有保存的进度条目。每个保存的进度条目都有它的名称(例如,stash@{0} 是最新的条目,stash@{1} 是之前的条目,等等),条目创建时的当前分支的名称,以及条目所基于的提交的简短描述。
该命令可采用适用于 git log 命令的选项来控制显示的内容以及如何显示。
show [-u|--include-untracked|--only-untracked] [<diff选项>] [<stash>]
显示保存的进度条目与第一次创建进度条目时的提交内容之间的差异。它可接受 git diff 命令的选项。
pop [--index] [<stash>]
push 命令的反操作,删除一个的进度条目,并将其应用到工作区(默认只恢复工作区而不恢复暂存区)。工作目录必须与暂存区匹配。如果有冲突则不会删除进度条目,需要解决冲突然后手动调用 drop 命令。
apply [--index] [<stash>]
与 pop 命令相似,但不会删除保存的进度条目。
branch <branchname> [<stash>]
从最初创建 <stash> 的提交开始,创建并签出一个名为 <branchname> 的新分支,将 <stash> 中记录的更改应用到新的工作区和暂存区。如果成功,并且 <stash> 是形如 stash@{<revision>} 的引用,那么它将删除 <stash>。
clear
删除所有的进度条目,请注意这会删除所有进度条目,且可能无法恢复。
drop [<stash>]
删除单个进度条目。
选项
-a --all 选项——保存被忽略和未跟踪文件
此选项仅对 push 和 save 命令有效,被忽略和未跟踪文件也将被保存。
-u --include-untracked 选项——包含未跟踪文件
当用于 push 和 save 命令时,所有未跟踪的文件也会被保存。
当与 show 命令一起使用时,将进度条目中的未跟踪文件显示为 diff 的一部分。
--only-untracked 选项——仅包含未跟踪文件
该选项仅对 show 命令有效。
只显示进度条目中未跟踪的文件作为差异的一部分。
--index 选项——恢复暂存区
此选项仅对 pop 和 apply 命令有效。
不仅尝试恢复工作区的更改,而且恢复暂存区的更改。但是,当您有冲突时(这些冲突存储在暂存区中),这可能会失败。默认只恢复工作区而不恢复暂存区。
-k --keep-index 选项——不重置暂存区
此选项仅对 push 和 save 命令有效。
保存进度后不会将暂存区重置。默认会将暂存区和工作区强制重置为 HEAD。
-- <路径>—— 限定文件
此选项仅对 push 命令有效。
进度条目仅保存匹配路径的文件,然后,暂存区和工作区文件也会被回滚到这些文件在 HEAD 中的状态,而不匹配路径的文件则会保持不变。
-- 表明随后的参数是路径,这在文件名与选项有歧义时非常有用。
<stash>——进度条目
此选项仅对 apply, branch, drop, pop, show 命令有效。
对形如 stash@{<revision>} 的引用。如果没有给出 <stash>,则假定是最新的 stash (即: stash@{0} )。