91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用git bisect定位代碼中的BUG

發布時間:2021-06-25 17:49:03 來源:億速云 閱讀:155 作者:chen 欄目:大數據

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

背景

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

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

具體方法

先通過 git log 命令 找到你確定代碼是 OK 的 git hash 再找到你當前出現 BUG 的 git hash

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

開始對 commit 做標記

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

git 會進行二分查找

然后開始開始 test 驗證當前 hash 的 commit 的代碼是不是 OK 的

如果當前代碼 test 不通過 就標記為 bad git bisect bad

反之如果當前代碼 test 通過 就標記為 good git bisect good

反復的進行 test 和標記 直到找出那個 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”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍山县| 花莲市| 鄂尔多斯市| 紫阳县| 麻城市| 华池县| 喀喇沁旗| 集安市| 辽源市| 辽宁省| 土默特右旗| 邹平县| 磐安县| 长子县| 安平县| 福泉市| 九江县| 土默特左旗| 甘泉县| 磐安县| 巧家县| 新和县| 青浦区| 上思县| 高雄市| 灌云县| 金门县| 衡山县| 称多县| 任丘市| 宝山区| 龙门县| 萨嘎县| 察雅县| 合阳县| 乐至县| 韩城市| 保山市| 淳安县| 乌鲁木齐县| 麟游县|