git stash
命令用于保存当前工作目录的变更,并将工作目录恢复到上一次提交的状态。这对于在切换分支或处理紧急任务时非常有用。以下是 git stash
的基本用法:
保存工作目录变更:
git stash save "Your stash message"
这个命令将工作目录的变更保存到一个新的 stash 中,并给这个 stash 添加一条描述消息。
查看当前的 stash 列表:
git stash list
这个命令显示所有保存的 stash 列表。stash 的列表类似于一个栈,最近的 stash 会在列表的最上面。
应用 stash:
git stash apply stash@{n}
使用这个命令可以应用指定的 stash。你可以通过 stash@{n}
来指定 stash 的索引号,例如 stash@{0}
表示最新的 stash。
应用并删除 stash:
git stash pop
这个命令应用最新的 stash,并将其从 stash 列表中移除。它相当于执行 git stash apply
和 git stash drop
。
删除 stash:
git stash drop stash@{n}
这个命令删除指定的 stash。注意,删除 stash 不会影响工作目录中的文件,只会删除 stash 记录。
清空 stash 列表:
git stash clear
这个命令会删除所有的 stash 记录。
注意:git stash
默认只保存未暂存的变更(工作目录的变更),如果想要保存已暂存的变更,可以使用 git stash -u
或 git stash --include-untracked
。
示例:
# 保存当前工作目录的变更
git stash save "Working on feature X"
# 切换到其他分支,处理其他任务
# 切回原分支
git stash apply stash@{0}
这个例子中,我们先保存当前工作目录的变更,然后切换到其他分支执行一些任务,最后切回原分支并应用之前保存的 stash。