成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何使用gitbisect定位代碼中的BUG

本篇內(nèi)容主要講解“如何使用git bisect定位代碼中的BUG”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何使用git bisect定位代碼中的BUG”吧!

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供鹿寨網(wǎng)站建設(shè)、鹿寨做網(wǎng)站、鹿寨網(wǎng)站設(shè)計、鹿寨網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、鹿寨企業(yè)網(wǎng)站模板建站服務(wù),10余年鹿寨做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

背景

你可能遇到過這種情況, 昨天下班前把模塊開發(fā)完了, 單元測試驗證通過, git commmit 蓋上電腦 開開心心下班啦 ????
第二天啥上午來了,繼續(xù)開發(fā),提交了幾個 commit ,下午部署了一個版本,發(fā)現(xiàn)昨天測試通過的代碼出現(xiàn)了 BUG ????
這個時間你會怎么做, 可能的翻出現(xiàn) BUG 代碼文件的 git log 一翻發(fā)現(xiàn) 有20個 commit ?????
此時你的心情可能是崩潰的 ????

告別人肉排查 bad commit 借助 git bisect 找 BUG ??

具體方法

先通過 git log 命令 找到你確定代碼是 OK 的 git hash 再找到你當(dāng)前出現(xiàn) BUG 的 git hash

然后 使用 git bisect start 開始咱們的奇妙 debug 之旅 ????

開始對 commit 做標(biāo)記

告訴 git 這個 commit(剛才找出來確定代碼是OK的 commit hash) 是 OK 的 git bisect good 5d5dba7
告訴 git 當(dāng)前最后一個 commit 代碼是有 BUG 的 git bisect bad 692ac39

git 會進(jìn)行二分查找

然后開始開始 test 驗證當(dāng)前 hash 的 commit 的代碼是不是 OK 的

如果當(dāng)前代碼 test 不通過 就標(biāo)記為 bad git bisect bad

反之如果當(dāng)前代碼 test 通過 就標(biāo)記為 good git bisect good

反復(fù)的進(jìn)行 test 和標(biāo)記 直到找出那個 bad commit 為止

然后退出 git bisect 模式 git bisect reset

附上操作流程圖 如何使用git bisect定位代碼中的BUG

附上官方文檔 Git Docs

附上二分查找可視化動畫 binary search visualization

附上我的命令行操作記錄

wujunze@Mac: ~/monkey/code/monkey-api develop
 $ git bisect start                                                                                                                                              [20:31:46]
 
wujunze@Mac: ~/monkey/code/monkey-api develop
 $ git logg                                                                                                                                                      [20:31:50]
 
wujunze@Mac: ~/monkey/code/monkey-api develop
 $ git bisect good 16e91a8                                                                                                                                       [20:31:54]
 
wujunze@Mac: ~/monkey/code/monkey-api develop
 $ git logg                                                                                                                                                      [20:31:59]
 
wujunze@Mac: ~/monkey/code/monkey-api develop
 $ git bisect bad 692ac39                                                                                                                                        [20:32:04]
Bisecting: 9 revisions left to test after this (roughly 3 steps)
[cd1a0814fe21aa3e06020efb5aa4118ead17acce] not filter
 
wujunze@Mac: ~/monkey/code/monkey-api cd1a081
 $ git bisect bad                                                                                                                                                [20:32:07]
Bisecting: 4 revisions left to test after this (roughly 2 steps)
[63bf3176854a4fe112d612cee3f6bacce9e77e7d] fix merge
 
wujunze@Mac: ~/monkey/code/monkey-api 63bf317
 $ git bisect good                                                                                                                                               [20:32:11]
Bisecting: 2 revisions left to test after this (roughly 1 step)
[798239a0397c52127c721b8b84bb430b5fd0e83b] debug
 
wujunze@Mac: ~/monkey/code/monkey-api 798239a
 $ git bisect bad                                                                                                                                                [20:32:14]
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[5d5dba7c3fc947768cc609493de9808f3d9cf635] fix assert logic
 
wujunze@Mac: ~/monkey/code/monkey-api 5d5dba7
 $ git bisect bad                                                                                                                                                [20:32:23]
5d5dba7c3fc947768cc609493de9808f3d9cf635 is the first bad commit
commit 5d5dba7c3fc947768cc609493de9808f3d9cf635
Author: wujunze <itwujunze@163.com>
Date:   Tue Oct 29 18:20:36 2019 +0800

    fix assert logic

:040000 040000 b5d77b6ac82d8427d1bc3a9db2213f6c10ea0d63 3f49c18b6569282f7fa2a2c935b9ba73d6d0fbc0 M      app
 
wujunze@Mac: ~/monkey/code/monkey-api 5d5dba7
 $ git bisect reset                                                                                                                                              [20:32:27]
Previous HEAD position was 5d5dba7 fix assert logic
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.
 
wujunze@Mac: ~/monkey/code/monkey-api develop
 $                                                                                                                                                               [20:36:38]

到此,相信大家對“如何使用git bisect定位代碼中的BUG”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文標(biāo)題:如何使用gitbisect定位代碼中的BUG
URL分享:http://jinyejixie.com/article10/ipiggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、App開發(fā)、網(wǎng)站改版、手機網(wǎng)站建設(shè)、企業(yè)建站、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
肥东县| 乐都县| 桃江县| 桐城市| 安陆市| 台前县| 通榆县| 信宜市| 施秉县| 固阳县| 海林市| 西安市| 屯门区| 西安市| 孝义市| 清徐县| 庄河市| 鹤山市| 封丘县| 民勤县| 托克托县| 孟连| 宜宾市| 五台县| 河池市| 柳河县| 泸定县| 镶黄旗| 富裕县| 临猗县| 乌审旗| 卓尼县| 乌鲁木齐县| 将乐县| 忻城县| 慈利县| 霞浦县| 图们市| 沙田区| 连平县| 莎车县|