1.基本用法
1.1保存当前代码
git stash
作用:将当前工作目录中的所有未提交的更改(包括暂存区和工作区的更改)保存到一个"stash"中,并将工作目录恢复到最近一次提交的状态。
1.2 保存更改并添加描述
arduino
git stash save "描述信息"
作用:保存当前更改,并为 stash 添加描述信息,方便后续查找。
示例
arduino
git stash save "临时保存未完成的特性"
2. 查看所有保存的 Stash
git stash list
作用:列出所有保存的 stash,显示每个 stash 的名称、描述和保存时的分支信息。
输出示例:
less
stash@{0}: WIP on main: commit-hash 描述信息
stash@{1}: WIP on feature: commit-hash 另一个描述
3. 恢复 Stash
3.1 恢复最新的 Stash
perl
git stash pop
**作用:**将最新的 stash 应用到当前工作目录,并从 stash 列表中删除该 stash。
**注意:**如果有冲突,Git 会提示冲突信息,需要手动解决。
3.2 恢复指定的 Stash
kotlin
git stash apply stash@{索引}
// 可能会发生报错,需要加上'',后续需要指定stash的都是如此
git stash apply 'stash@{索引}'
**作用:**将指定的 stash 应用到当前工作目录,但不会从 stash 列表中删除。
示例:
kotlin
git stash apply stash@{1}
// or
git stash apply 'stash@{1}'
3.3 恢复并删除指定的 Stash
kotlin
git stash pop stash@{索引}
**作用:**将指定的 stash 应用到当前工作目录,并从 stash 列表中删除。
示例:
perl
git stash pop stash@{1}
// or
git stash pop 'stash@{1}'
4. 删除 Stash
4.1 删除最新的 Stash
sql
git stash drop
**作用:**删除最新的stash
4.2 删除指定的 Stash
kotlin
git stash drop stash@{索引}
**作用:**删除指定的stash
用例:
kotlin
git stash drop stash@{1}
//
git stash drop 'stash@{1}'
4.3 清空所有 Stash
arduino
git stash clear
**作用:**删除所有保存的stash
5. 查看 Stash 的内容
5.1 查看最新的 Stash
sql
git stash show
**作用:**显示最新的 stash 中的更改。
5.2 查看指定的 Stash
kotlin
git stash show stash@{索引}
作用:显示指定 stash 的更改。
5.3 查看 Stash 的详细内容
css
git stash show stash@{索引} -p
**作用:**以补丁的形式显示指定 stash 的详细更改。
6. 常见场景
6.1 切换分支前保存更改
当你正在工作时,需要切换到另一个分支,但不想提交当前的更改:
git stash
git checkout other-branch
6.2 恢复更改并继续工作
当你完成其他任务后,回到原来的分支并恢复更改:
perl
git checkout original-branch
git stash pop
6.3 清理工作目录
如果你发现某个 stash 已经不再需要,可以直接删除:
kotlin
git stash drop stash@{索引}