临时工作区
临时工作区可以将当前的所有修改临时保存起来(包括暂存区和工作区的)。他解决了以下场景面临的窘境 👇
代码改了一半,突然来了一个紧急的 Bug 需要立即修复,这时的工作区是“脏”的:
- 不能提交(功能未完成)
- 不能切换分支(会丢失未提交的修改)
需要切换分支去解决问题,但又不舍得丢弃当前代码,进退两难。
储藏 git stash
git stash 是 Git 官方原生的、基于命令行的临时工作区功能。
| 命令 | 作用 |
|---|---|
git stash git stash save "message" | 将当前工作区和暂存区的变更储藏起来,并可选地附带一条描述信息。 |
git stash list | 查看所有已储藏的工作列表。 |
git stash pop | 应用最新的一个储藏,并将其从储藏列表中删除。 |
git stash apply stash@{n} | 应用指定的储藏(例如 stash@{1}),但不从储藏列表中删除它。 |
git stash drop stash@{n} | 从储藏列表中删除指定的储藏。 |
git stash clear | 清空所有储藏。 |
git stash show -p stash@{n} | 查看指定储藏的具体文件变更内容。 |
搁置 Shelve
搁置是 IDE 提供的临时工作区管理工具,相比原生的储藏更好用、更安全、更灵活。
- 灵活:可选择性搁置,可跨分支应用。
- 安全:搁置的内容存储在
.idea/shelf/中,不会因 Git 操作被意外清除。 - 清晰易管理:可以随时查看、比较、应用或删除任何一个,而不必去记
stash@{n}这样的索引。
最后更新于