你一定遇到过,一个很久没修改过的功能,莫名其妙的出现了问题?肉眼查代码.屡逻辑完全找不到问题点?前两天还好好的功能,怎么这个今天就不行了?这两天改动了这么多代码,到底是那一次改动引发的 Bug? 这样非崩溃的 Bug,有时候想要排查出问题,并不是一件容易的事情.我想,这个时候你会需要 git bisect ! 一.git bisect 基础使用 git bisect 是 Git 提供的一种 二分法 的调试工具,它可以按照我们选定的提交,进行二分分割,快速定位出出错的提交.来帮我们缩小最小改动的代…
摘要:git bisect命令使用二分搜索算法来查找提交历史中的哪一次提交引入了错误.它几乎能让你闭着眼睛快速定位任何源码导致的问题,非常实用. 本文分享自华为云社区<利用好 git bisect 这把利器,帮助你快速定位疑难 bug>,作者: DevUI. 使用git bisect二分法定位问题的基本步骤: git bisect start [最近的出错的commitid] [较远的正确的commitid] 测试相应的功能 git bisect good 标记正确 直到出现问题则 标记错误…
今天测试同学为了赶进度,加班去测试我的功能. 因为我的代码都写完了,也没有陪测的必要,所以就没去了~ 下午第一个问题提过来,根据经验,这个应该是测试的逻辑问题,最后他自己也发现了. 过了一会,提了第二个问题,说是本该命中条件进入某个等级的,没有进入,跳到下个等级了. 拥有几年开发经验的我,此时当然不会说“我的代码没有bug,你再试一遍”.说出这句话的成本近乎为0,但是脸要是打起来,那是真的疼啊~~~ 脑海中快速思考下,发现不是靠脑海中演练就能给出答案的,于是乖乖的,掀开电脑盖,指纹解锁,连接VP…
注:本文内容较长且细节较多,建议先收藏再阅读,原文将在 Github 上维护与更新. 在 HTTP 接口开发与调试过程中,我们经常遇到以下类似的问题: 为什么本地环境接口可以调用成功,但放到手机上就跑不起来? 这个接口很复杂,内部调用了好几个其他接口,如何定位问题究竟出在哪一步? 后端开发还没有把接口提供好,前端开发任务无法推进…… 「猫哥网络编程系列」最核心的任务便是向各位分享一个我从多年的前后端项目中总结而来的「万能」HTTP 调试法,掌握并从网络编程原理上理解它,能让我们顺利定位并解决所有…
一个crontab脚本,下载一个文件并把内容入mysql数据库.具体流程如下: 1, wget一个文件. 2,处理文件生成一个中间文件. 3,将中间文件load入库. 05 10 * * * /home/work/local/php5.4/bin/php /home/work/www/new_products1/web/index_cli.php actionads/index bug现象: 在线上,5次运行中,有2次会出错,就是入库的数据会缺失30%以上. 在线上手动运行脚本,没有一次出错.但…
使用Git分支开发新特性或修复Bug 通过分支,可以在不影响原有代码的前提下改变代码,主要用于开发新功能新特性.下 一代产品 为已经发布的正式版修复bug 团队开发时为每个人建立一个分支,从而避免相互影响 每个分支都有自己的历史记录  除了使用Eclipse工具创建/切换分支之外,也可以使用命令方法创建及切换分支 创建并切换:  git  checkout  -b 分支名 切换:  git  checkout   分支名 git  brach    查看所有分支 使用@ResponseBody和…
一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下--no-ff方式的git merge: 首先,仍然创建并切换dev分支: $ git checkout -b dev Switched to a new branch 'dev' 修改readme.txt文件,并提交一…
遇到个BUG,卡了好久,就是在iOS9上定位接口是正常的,但是在iOS7上就一直拿不到回调,但是看系统日志其实已经定位到了.总是在报一句not response,也没有具体函数名 昨天灵机一动,从delegate里找了个函数放上去,OK了. - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)old…
Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 当你接到一个修复代码为101的任务的时候,很自然的你想创建一个分支issue-101来修复它,但是等等,当前正在dev上进行的工作还没有提交: $ git status On branch dev Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: hello.py…
目录 备注: 知识点 记一次分支合并问题状况 从分支点开始,不同分支修改工作区的内容(不添加到暂存区和提交),切换分支,工作区的内容是一样的. 必须在提交或者暂存当前暂存区的状态后,再切换或合并分支 超前提交的分支无法合并落后版本的分支(即无法倒退到未提交过的分支状态) bug分支 暂存当前暂存区的状态 恢复暂存起来的状态 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文. 知识点 当前一个分支上修改文件或目录后,在没有提交前,任何一个分…