1- git stash 命令是干吗用的?

git sash 命令用于将当前工作区暂存起来,方便切换分支之后恢复。

git sash 命令用于临时保存工作区中的更改,以便您可以切换分支或者处理其他任务,而无需提交当前的工作进度。

详细讲解如下:

假设你正在 dev 分支上开发一个功能,开发到一半的时候,需要先处理一个紧急 Bug。这时候,git stash 命令就派上用场了,我们可以执行 git stash 命令将当前在 dev 分支上的改动暂存起来,然后切换到 bugfix 分支上修复 bug。修复完之后,再切回 dev 分支,然后再通过 git stash pop 恢复在 dev 分支中的改动,这样就避免了将未完成的改动提交到仓库中。


2- git stash 如何使用?

暂存当前工作区中的改动可以直接使用 git stash 命令,或者 git stash save "备注" 命令,它们的区别就是一个带备注,一个不带备注。

# 不带备注
git stash

# 带备注,写上备注信息方便查找和管理
git stash save "备注"

应用暂存的工作区改动,可以使用 git stash apply 命令,或者 git stash pop 命令。两者区别是 apply 命令不会删除暂存记录,而 pop 命令会删除暂存记录。

# 应用暂存到当前分支,不会删除暂存记录
git stash apply

# 应用暂存到当前分支,并删除暂存记录
git stash pop


3- 如何查看暂存列表?

查看暂存列表可以使用 git stash list 命令,它会列出当前仓库中所有暂存记录。

git stash list

列出的列表如下面这般:

stash@{0}: On 6.1.0: 6.1.0备注
stash@{1}: WIP on main: 7423bbb main


4- 如何删除暂存记录?

删除暂存记录可以使用 git stash drop 命令,或者 git stash clear 命令。两者区别是 drop 命令可以指定删除的记录,而 clear 命令则会把所有暂存记录都删除。

# 删除ID为 0 的记录,ID 可以通过 git stash list 查看
git stash drop stash@{0}

# 删除所有暂存记录
git stash clear


5- 如果有多个暂存记录,我直接 git stash apply ,它会应用哪一个暂存记录?

如果存在多个暂存记录,直接执行 git stash apply 命令的话,它会应用最新的暂存记录,也就是 ID 为 0 的记录。


6- 如果我想应用指定的暂存记录,应该怎么办?

如果你想应用特定的 stash,可以使用其 ID

# 假设 ID 为 n,则执行如下命令,ID 可以通过 git stash list 查看
git stash apply stash@{n}


7- 如果我想应用所有的暂存记录,应该怎么办?

如果你想应用所有 stash,你需要逐个应用它们。通常情况下,你不会一次性应用所有 stash,因为它们可能包含不同的工作内容,相互之间可能会产生冲突。如果你确实需要应用所有 stash,你可以按照它们的顺序依次应用,比如:

git stash apply stash@{0}
git stash apply stash@{1}
git stash apply stash@{2}


8- 如果我是在 dev 分支执行的 git stash ,那么我可以切换到其它分支进行 apply 吗?

当你在 dev 分支上使用 git stash 命令后,再切换到另一个分支上使用 git stash apply,这是完全可行的。事实上,这也是 git stash 命令的一个常见用途之一。

本文最后更新于 2024-08-12 16:56:44DEV-TOOLS
天生我材必有用,千金散尽还复来~~
作者:鄢云峰 YYF声明:转载请注明文章出处地址:https://yanyunfeng.com/article/56
评论
提交
来发第一个评论啦~