详细分析git stash的深入解析与实用技巧

前言

对于Git的实战补充推荐阅读:Git 实战场景过程(工作总结篇)

1. 基本知识

git stash 是 Git 中用于临时保存工作目录和暂存区修改的命令

允许开发人员在不提交当前更改的情况下切换分支或进行其他工作,然后稍后恢复这些修改

基本的命令如下:

  1. 保存当前修改:(将会保存当前工作目录和暂存区的修改,并将工作目录恢复到上一次提交的状态)
git stash
  1. 查看已保存的修改
    列出所有已保存的stash
    每个stash都有一个唯一的标识符(类似于 stash@{0})
git stash list
  1. 恢复已保存的修改
    将应用指定的stash
    默认情况下,它会应用最近一次的stash(即 stash@{0})
git stash apply [<stash>]
  1. 恢复并删除已保存的修改:(应用最近一次的stash,并将其从stash列表中删除)
git stash pop

截图如下:

在这里插入图片描述


  1. 删除一个已保存的stash
    删除指定的stash
    如果没有指定,将删除最近一次的stash
git stash drop [<stash>]
  1. 删除所有已保存的stash
    清空所有已保存的stash
git stash clear

大致截图如下:

在这里插入图片描述
如果是删除,则会删除最近的一次:

在这里插入图片描述

2. 延伸拓展

  • 保存部分修改
    仅保存工作目录的修改(不包括暂存区的修改):git stash push -k
    仅保存暂存区的修改(不包括工作目录的修改):git stash push -m

  • 带有消息的stash
    为每个stash添加一个描述性的消息,以便于记忆:git stash push -m "description"

  • 应用特定的stash
    多个stash,并且想应用特定的一个:git stash apply stash@{2}

  • 创建分支并应用stash
    创建一个新的分支,并在这个分支上应用一个stash:git stash branch <branchname> [<stash>]

  • 查看stash的内容
    查看某个stash中的具体修改:git stash show [<stash>]
    在这里插入图片描述
    查看详细的diff信息,可以加上 -p 参数:git stash show -p [<stash>]
    在这里插入图片描述

  • stash应用到不同的工作目录
    将一个stash应用到不同的分支或工作目录:

git checkout <other_branch>
git stash apply [<stash>]

3. 总结

  • 冲突处理:在应用stash时,如果与当前工作目录的内容有冲突,Git 会提示冲突,需要手动解决冲突
  • 数据安全:虽然 git stash 是一种方便的临时保存方式,但不应该长期依赖于它来保存重要的修改
    建议定期提交代码,以确保数据安全
  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
`git stash push` 命令用于将当前工作区的修改保存到一个临时区域中,方便之后再恢复这些修改。下面是 `git stash push` 的详细使用步骤: 1. 首先,进入你想要保存修改的项目目录中,确保你已经对项目进行了修改。 2. 执行 `git stash push` 命令,将当前工作区的修改保存到临时区域中。 ``` git stash push ``` 执行该命令后,Git会将当前工作区的所有修改保存到一个临时的stash中,并将工作区恢复到一个干净的状态,就好像你还没有修改过一样。 3. 如果你只想保存部分文件的修改,可以使用 `git stash push <path-to-file>` 命令。其中,`<path-to-file>`是指你想要保存的文件路径。 ``` git stash push <path-to-file> ``` 4. 如果你想要为这个stash添加一个标签,以便在恢复的时候更容易识别,可以使用 `-m` 选项,后跟标签名。 ``` git stash push -m "my stash" ``` 5. 如果你希望在保存stash时,也保存未跟踪的文件,可以使用 `-u` 选项。 ``` git stash push -u ``` 6. 如果你想要将修改保存到一个已存在的stash中,可以使用 `-q` 选项来关闭命令的输出,然后使用 `stash@{n}` 来指定stash的名字。 ``` git stash push -q stash@{1} ``` 7. 最后,如果你想要查看你已经保存的所有stash,可以使用 `git stash list` 命令。 ``` git stash list ``` 以上就是使用 `git stash push` 命令的详细步骤。需要注意的是,stash只会保存你还没有提交的修改,如果你已经提交了修改,那么这些修改是不会被保存到stash中的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值