git命令中git stash pop 与git stash apply的区别

git stash的使用场景: 当前分支下的某几个文件,前面的修改部分已经放在暂存区,目前在工作区还在进行修改,如果此时需要在当前文件下进行紧急修复bug,就需要把工作区正在修改的文件stash暂存起来,进行bug修复工作,在完成bug修复工作后,提交commit,将暂存的工作区文件内容拿出来继续工作。

举例:对于index.html文件之前已经提交过了,现在工作区仍然还在index.html文件上进行工作,这个时候你被通知说,要对index.html文件进行一个修复提交,工作区的内容还没有改好不想提交。完美做法是:将工作区的内容stash,在index文件中修复bug提交后,再将工作区的内容取出来,恢复到暂存时的状态。

恢复暂存时的状态有两种命令:git stash pop

                                                   git stash apply

这两种都可以,区别呢?

使用git stash命令之后会在stash列表中生成一个对应的信息,使用apply命令恢复,stash列表中的信息是会继续保留的,而使用pop命令进行恢复,会将stash列表中的信息进行删除。

例子

初始状态index.html文件在工作区进行修改:可以使用命令git status 和git diff看到此时的修改信息。

这个时候还没有修改完,不想提交,但是要去修复bug。

将index文件的内容stash起来,使用命令:git stash,如下图:使用git stash命令后,再使用git status或者git diff查看可以发现,对工作区的修改内容已经没有了,这个时候进行bug修复提交

bug修复提交后,恢复之前暂存的状态,这个时候有两种命令可选,我们选择:git stash pop命令

并使用git status和git diff可以发现,此时工作区index文件的内容跟我们暂存前是一样的。

 

另:在进行bug修复时,如果修复bug的部分与我们保存暂存时文件的内容冲突时(在一处进行修改),这样在使用命令git stash pop进行恢复暂存时会出现冲突,应该怎么解决?根据当前情况解决冲突?

 

 

git stash popgit stash apply 都是用于从存储列表恢复stash命令。两者的区别在于,git stash pop 在应用stash之后会丢弃该stash,而git stash apply 则会保留该stash在存储列表以备日后重用。如果没有指定版本号,两个命令默认会恢复存储列表最新的stash。建议在存储列表只有一条stash时使用git stash pop,以避免忘记指定版本而导致混乱。如果需要指定恢复的版本,可以在命令后面加上stash@{$num},其$num是stash的版本号。如果想要移除某个stash,可以使用git stash drop 命令,后面加上stash@{$num}指定要删除的版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [git stash 命令详解](https://blog.csdn.net/weixin_39106990/article/details/129141780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [git stash 的用处及用法详解](https://blog.csdn.net/Android_boom/article/details/127052137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值