SourceTree系列5:贮藏和修复Bug

1、贮藏

在切换分支时,要确保该分支已经提交。如果当前develop分支可以提交,无疑是最好的选择,但是,如果当前不能提交呢?

此时我们可以使用贮藏功能。贮藏功能就是对现在的更改进行备份,注意仅仅是对更改进行备份。使用贮藏功能后,会让当前分支的工作区恢复到上一次提交的时候,从而使当前工作区变得干净。这叫做贮藏现场。

现在我们来使用一下这个功能,首先切换到develop分支,然后修改文件内容,并添加一个新文件。
在这里插入图片描述
在这里插入图片描述
贮藏成功之后发现新建的文件还在,说明新文件没有被贮藏,贮藏成功的只是被修改的文件。

出现这种情况的原因是因为,此时new file.txt还没有被Git跟踪管理,所以它默认不会被贮藏,从而一直留在文件系统中。如果我们切换到master分支,这个更改(添加新文件也是更改)会被带到master中,sourceTree也会提醒有未提交的更改,提醒你提交这个文件。

为了避免这个文件在master中会被误提交,从而使该文件出现在不应该出现的版本中,我们应该先将文件暂存再贮藏
在这里插入图片描述
在这里插入图片描述
此时应用贮藏区,new file.txt会被应用到暂存文件,test.txt会被应用到未暂存

在这里插入图片描述
在这里插入图片描述
保留暂存的更改,顾名思义,就是贮藏的之后保留已暂存的文件。

贮藏时,如果勾选了“保留暂存的更改”选项,那么已经加入暂存区的内容都会被保留,并且在切换分支时,暂存区的内容也会被带到其他分支去。从而其他分支也能看到所做的更改。

注意,一般情况下,请不要勾选“保留暂存的更改”。因为,这可能会给你带来冲突,除非特殊情况,你确实需要把修改带过去才这么做。
在这里插入图片描述
在这里插入图片描述

2、修复bug

当master分支出现bug,develop分支又有已提交更改的情况下。
修复bug分为以下几步:
第一步:贮藏develop分支的修改
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
第三步:在fixbug分支上修复bug
第四步:切换到master,合并master和fixbug分支
第五步:切换到develop,合并develop和fixbug分支
第六步:应用贮藏,继续开发

第一步:贮藏develop分支的修改,上面已经描述过如何贮藏,这里不再过多解释。
在这里插入图片描述
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
在这里插入图片描述
第三步:在fixbug分支上修复bug
在这里插入图片描述
第四步:切换到master,合并master和fixbug分支
在这里插入图片描述

第五步:切换到develop,合并develop和fixbug分支
在这里插入图片描述

第六步:应用贮藏,继续开发
这个时候应用贮藏区会报如下冲突,我们需要解决冲突
在这里插入图片描述
这是报了冲突之后文件内容的变化情况
在这里插入图片描述
解决冲突,我们既需要保留合并过来的内容,也需要保留贮藏的内容。将文件中的 ’<<<<<<< Updated upstream‘,’=======‘,’>>>>>>> Stashed changes‘都删除即可。然后告诉sourceTree冲突已解决。
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你在使用SourceTree时遇到了一个错误提示:"You have divergent branches and need to specify how to reconcile them." 这个错误提示意味着你的分支发生了冲突,需要解决这个冲突以继续进行操作。 根据引用,这个错误信息是Git所提供的。当你尝试合并分支时,Git发现有冲突的修改,需要你明确指定如何解决这些冲突。 根据引用,这种情况通常发生在你拉取(pull)分支前,其他人已经在你之前推送(push)了一个版本,导致分支的版本不一致。 解决这个问题的一种方法是,根据引用中提到的操作步骤: 1. 首先,你可以查看最近的提交历史版本,找到你想要回退到的版本。使用命令`git log -2`可以查看最近两次提交的历史版本。 2. 然后,使用`git reset --hard <commit地址>`命令来回退到你选择的历史版本,这样你的分支将回退到合并之前的状态。 3. 接下来,你可以使用`git pull origin <你的分支>`命令来更新你的分支,确保与远程仓库保持同步。 4. 最后,你可以使用`git merge <要合并的分支>`命令重新合并你想要合并的分支。 通过按照上述步骤解决冲突,你应该能够成功解决SourceTree中的错误提示,并继续进行你的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决git问题:fatal: Need to specify how to reconcile divergent branches.](https://blog.csdn.net/weixin_51220967/article/details/127870602)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Git】pull 分支报错 fatal: Need to specify how to reconcile divergent branches...](https://blog.csdn.net/qq_45677671/article/details/122574671)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值