git stash暂存代码

文章目录

使用场景

当你在一个 A 分支上开发代码,但是还没有开发完,开发了一半,这时候你紧急接到另外一个工作得在 B 分支开发代码并且需要 push 上去,这时候 A 分支上的代码怎么办呢

操作

基本操作

# 把代码暂存起来,并写上描述信息,执行此命令后,你可以正常切换到 B 分支了
git stash push -m "your-stash-name"

# B 分支代码开发完后,你再切换到 A 分支,你需要把之前 stash 的代码给还原覆盖上去
# 先看下 stash 中有哪些记录
git stash list
# 然后覆盖应用上去
git stash pop stash@{0}

pop 能使得 stash 的代码应用上去,同时 stash list 中该条记录也被删除,如果你希望应用上去以外,不删除 stash list 中的记录(因为你可能还需要把这个记录应用到其他分支),那么可以如下

# 先看下 stash 中有哪些记录
git stash list
# 然后覆盖应用上去,此时 stash list 中该 stash 记录还留有着
git stash apply stash@{0}

# 后续如果你要清除 stash list 中该条记录
git stash drop stash@{0}
### 如何在Git中恢复或应用被stash的更改 在Git中,`git stash`命令用于临时保存当前工作区和暂存区的修改。为了恢复或应用这些被暂存的更改,可以使用以下两种主要方法:`git stash apply`和`git stash pop`。 #### 方法一:使用`git stash apply` 此方法将保存的更改从stash堆栈中应用到当前的工作区,但不会从堆栈中删除该stash条目[^2]。这意味着你可以多次应用同一个stash条目而不丢失原始记录。 ```bash git stash apply ``` 如果需要应用特定的stash条目(例如`stash@{0}`),可以通过指定stash引用实现: ```bash git stash apply stash@{0} ``` #### 方法二:使用`git stash pop` 与`git stash apply`不同,`git stash pop`不仅会将最近一次保存的更改应用到当前工作区,还会自动将其从stash堆栈中删除[^1]。因此,这种方法适用于一次性恢复操作。 ```bash git stash pop ``` 同样地,也可以通过指定stash引用来恢复特定的stash条目: ```bash git stash pop stash@{0} ``` #### 注意事项 - 在应用stash之前,确保工作目录是干净的,或者已经做好了必要的备份,以防止数据冲突或丢失[^3]。 - 如果在应用stash时遇到冲突,Git会提示冲突信息。此时需要手动解决这些冲突,并使用`git add`命令标记为已解决。 #### 示例代码 以下是一个完整的示例,演示如何使用`git stash`保存更改并恢复: ```bash # 保存当前工作区和暂存区的更改 git stash # 切换分支或其他操作 git checkout master # 恢复最近一次保存的stash更改并保留在堆栈中 git stash apply # 或者恢复最近一次保存的stash更改并从堆栈中删除 git stash pop ``` 如果需要恢复特定的stash条目,可以结合`git stash list`查看stash堆栈中的所有条目: ```bash # 查看stash堆栈中的所有条目 git stash list # 应用特定的stash条目并保留在堆栈中 git stash apply stash@{1} # 或者应用特定的stash条目并从堆栈中删除 git stash pop stash@{1} ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

abcnull

您的打赏是我创作的动力之一

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

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

打赏作者

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

抵扣说明:

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

余额充值