简介
Git stash 是一项强大的功能,它允许开发者临时保存本地更改而无需提交。在本教程中,我们将指导你应用特定 Git stash 的过程,帮助你高效管理开发工作流程并保持代码库的整洁。
理解 Git Stash 基础
Git Stash 是 Git 中的一项强大功能,它允许你临时保存本地更改而无需提交。当你需要切换到不同分支或从远程仓库拉取最新更改,但又不想丢失当前分支上已完成的工作时,这一功能特别有用。
什么是 Git Stash?
Git Stash 是一种临时保存本地更改的方式,包括已暂存和未暂存的更改,保存在一个你稍后可以应用或丢弃的 “贮藏” 中。这使你能够切换到不同分支、拉取最新更改或执行其他 Git 操作,而不会丢失当前的工作。
何时使用 Git Stash?
你可能会在以下场景中使用 Git Stash:
- 你正在处理一个功能,需要切换到不同分支来修复 bug 或合并拉取请求。
- 你想从远程仓库拉取最新更改,但还不想提交本地更改。
- 你进行了一些实验性更改,想稍后保存这些更改,但又不想将它们提交到主分支。
如何使用 Git Stash?
要使用 Git Stash,你可以按以下步骤操作:
- 确保你的工作目录是干净的(没有未跟踪或已修改的文件)。
- 运行
git stash命令将当前更改保存到贮藏中。 - 切换到所需分支或执行其他 Git 操作。
- 当你准备好应用贮藏的更改时,运行
git stash apply来应用最新的贮藏,或者运行git stash apply stash@{n}来应用特定的贮藏,其中n是你要应用的贮藏的索引。
## 将当前更改保存到贮藏中
git stash
## 切换到不同分支
git checkout feature/new-functionality
## 应用最新的贮藏
git stash apply
## 应用特定的贮藏
git stash apply stash@{2}
可视化 Git Stash
你可以使用 Mermaid 图表来可视化 Git Stash 过程:
graph TD
A[工作目录] --> B[贮藏]
B --> C[工作目录]
B --> D[分支]
此图表展示了 Git Stash 功能如何允许你将本地更改临时保存在贮藏中,切换到不同分支,然后稍后将贮藏的更改应用回工作目录。
应用特定的 Git Stash
虽然 git stash apply 命令对于应用最新的贮藏很有用,但有时你可能需要从贮藏列表中应用特定的贮藏。当你有多个贮藏并且需要有选择地应用它们时,这会特别有帮助。
列出可用的贮藏
要查看可用贮藏的列表,你可以使用 git stash list 命令:
git stash list
这将显示你保存的所有贮藏的列表,以及它们的索引和所包含更改的描述。
应用特定的贮藏
要应用特定的贮藏,你可以使用 git stash apply 命令,后跟贮藏引用。贮藏引用的格式为 stash@{n},其中 n 是你要应用的贮藏的索引。
## 应用索引为 2 的贮藏
git stash apply stash@{2}
如果你想应用一个贮藏,然后将其从贮藏列表中删除,你可以改用 git stash pop 命令:
## 应用并删除索引为 2 的贮藏
git stash pop stash@{2}
可视化贮藏应用过程
你可以使用 Mermaid 图表来可视化应用特定贮藏的过程:
graph TD
A[贮藏列表] --> B[Stash@{2}]
B --> C[工作目录]
此图表展示了你如何从贮藏列表中选择特定的贮藏(在这种情况下为 Stash@{2})并将其应用到你的工作目录。
贮藏管理技巧
除了应用特定的贮藏外,你还可以使用以下命令来管理你的贮藏列表:
git stash clear:从贮藏列表中删除所有贮藏。git stash drop stash@{n}:从贮藏列表中删除特定的贮藏。git stash show stash@{n}:查看特定贮藏中包含的更改。
通过掌握这些技巧,你可以有效地管理你的 Git 贮藏,并根据需要应用它们来简化你的开发工作流程。
高级 Git Stash 技巧
虽然基本的 Git Stash 命令很强大,但也有一些高级技巧可以帮助你更好地管理和利用贮藏。这些技巧对于更复杂的开发工作流程尤其有用。
带消息贮藏
当你创建一个贮藏时,可以给它添加一条消息,以帮助你记住其中包含哪些更改。当你有多个贮藏并且需要快速识别每个贮藏的用途时,这会特别有帮助。
## 带消息贮藏更改
git stash save "实现新功能"
贮藏未跟踪的文件
默认情况下,git stash 命令只保存已跟踪的文件(即已经在 Git 版本控制之下的文件)。如果你想在贮藏中包含未跟踪的文件,可以使用 -u 或 --include-untracked 选项:
## 贮藏更改,包括未跟踪的文件
git stash -u
贮藏特定的文件或目录
如果你只想贮藏特定的文件或目录,可以将它们作为参数提供给 git stash 命令:
## 贮藏 src 目录中的更改
git stash save "贮藏 src 目录中的更改" src/
将贮藏应用到不同的分支
有时,你可能想将一个贮藏应用到与创建该贮藏时所在分支不同的分支上。你可以使用 git stash branch 命令来做到这一点:
## 将一个贮藏应用到不同的分支
git stash branch feature/new - functionality
此命令将创建一个新分支,检出它,然后将最新的贮藏应用到新分支上。
可视化高级贮藏技巧
你可以使用 Mermaid 图表来可视化一些高级 Git Stash 技巧:
graph TD
A[工作目录] --> B[贮藏]
B --> C[分支 A]
B --> D[分支 B]
此图表展示了你如何将贮藏应用到不同的分支,从而使你能够轻松地在处理不同功能或修复 bug 之间切换。
通过掌握这些高级 Git Stash 技巧,即使在复杂的场景中,你也可以简化开发工作流程并更好地管理你的代码库。
总结
在本教程结束时,你将全面了解如何应用特定的 Git 贮藏,以及探索管理贮藏更改的高级技巧。掌握这些技能将使你能够简化基于 Git 的开发过程,并维护一个更有条理和高效的代码库。



