git stash 用于临时保存未提交改动。
它适合处理“我手上有未完成代码,但现在必须切分支、拉代码、修 hotfix”的场景。
保存当前改动,包括未跟踪文件:
git stash push -u -m "wip: describe current work"
查看 stash 列表:
git stash list
应用某个 stash,但保留 stash 记录:
git stash apply stash@{0}
应用并删除 stash:
git stash pop
删除某个 stash:
git stash drop stash@{0}
重要改动优先用 apply。
pop 会在应用成功后删除 stash,如果应用过程中出现冲突,处理起来更容易慌。
稳妥流程:
git stash apply stash@{0}
git status
git diff
git stash drop stash@{0}
stash 适合临时保存,不适合长期保存重要工作。
重要工作应该尽快 commit 到明确分支。
默认 git stash 不一定保存未跟踪文件,建议使用:
git stash push -u
stash 多了之后很难知道每个保存点是什么。
建议每次加 -m 说明用途。