编程基础:GIT之stash二

97 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情

书接上文,上一篇文章我们讲了git stash ,今天继续

使用 Apply 或 Pop 恢复 Git 存储

虽然了解已隐藏的内容本身很有用,但能够恢复隐藏的内容也非常有用。要恢复最近的代码存储,您可以运行以下命令:

git stash apply

但是,如果您像我一样,并且有大量未使用的存储,有时恢复以前的存储也很有用,例如stash@{3}, 或stash@{25},就像我们之前看到的列表一样。在这些情况下,我们只需在命令后列出存储的数量。

例如,要恢复stash@{25},我们将运行以下命令:

git stash apply 25

如您所料,如果您修改了文件,然后尝试git stash apply在顶部运行,您可能会遇到合并冲突。因此,请确保在运行此命令之前已处理好这些问题。

git stash apply 与 git stash pop

刚才,我们曾经git stash apply恢复过一段代码。这将获取我们隐藏的代码,并将其应用到我们的工作树之上。它还会将代码的隐藏副本保留在隐藏代码列表中 - 所以您不会丢失它。

如果你想恢复隐藏的代码并从你的隐藏列表中删除该隐藏,你必须改为使用pop:

git stash pop

把你的藏匿处变成一个分支

另一个有用的东西git stash(未被充分利用)是它允许我们从隐藏的代码中创建一个新分支。如果你有一些隐藏的代码,你可以在当前项目中进行更改,在上面应用你的隐藏代码,然后创建一个你喜欢的新分支。

例如,以下将创建一个名为的分支new-code:

git stash branch new-code

其他保存 Stash 和 Git Stash Push 的方法

虽然我们已经介绍了如何使用git stash来存储最新代码,但您可能还会在野外看到以下命令:

git stash push

该命令实际上与 相同,git stash但如果您不了解这一点,可能会有点混淆。除此之外,还有git stash许多git stash push有用的选项,如果您希望使用它们:

  • -a或者--all,会将整个工作树保存到存储区,即git stash push -a
  • -S或--staged, 将仅保存使用git add, 即添加的分阶段更改git stash push -S
  • -p或者--patch, 将允许你经历每一个变化并有选择地决定你是否想要隐藏它,即git stash -p
  • -u或者--include-untracked,将所有未跟踪的文件与您的存储一起保存,即git stash push -u

使用 git stash 隐藏消息

作为旁注,在这一点上,有必要提及几乎所有git stash命令都带有该-q选项,该选项会抑制任何消息或错误:

git stash apply -q

删除你的藏匿处

最后,有时您想删除所有藏品。这有点危险,所以请谨慎使用,但如果你想这样做,你只需运行:

git stash clear

如果您不想做类似的事情,但仍想删除特定的隐藏项,您可以运行git stash drop以删除最近隐藏的条目,或git stash drop 25删除结果中列出的stash@{25}隐藏项git stash list。