zoukankan      html  css  js  c++  java
  • Git usage bisect

    当你疯狂coding,不停地提交代码,干得酣畅淋漓的时候,测试人员告诉你,不好意思你所有的feature都没有办法测试,因为最新的几个包都 没有办法工作,你愤怒那,咆哮那,冲到命令行下,运指如飞的敲下命令git log,试图发现究竟是哪个混蛋干得,结果你发现其它的疯子在你提交的时候,也卖力的提交那50,60次,然后你沉默那,你石化那,你陷入哀伤不能自拔。 这个时候,你需要的就是git bisect命令

    git log --pretty=oneline
    
    4d1ea14a2233c3aa330ee5a76ce990e4b920d0c5 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    5e4091d7a4a93f1145b5c6045831b242fd0f8e0a [Type]     Bug Fix
    a76f09620871b34024f6bd6226493ae4a95f5c80 This reverts commit 9083531e58a8445498a1df70e81fa9383e47113d. It seems after change the files related to IPO the cel
    7cee00c217111f5ecf6cc661cb45c17c037d6113 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    408d8bc68e404abe62e03cd965c6f48047e3af71 [Type]     Bug Fix
    70f48149afeac31482aedce98eda7f6a29f9b891     [Type]         Bug Fix
    737b66e802c1b706f284b83d285b00f809413d8e [Type]     Bug Fix
    9594ec81850ad6c77daa47043bde59a569f48ab8 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    9083531e58a8445498a1df70e81fa9383e47113d [Type]     Bug Fix
    4389f1eae9eff9fe6ee057676af04366c20ac197 [Type] Bug Fix
    a9721f609a754d407fdc990f35156ac14ef4a4c4     [Type]     Bug Fix
    3a77bdde643cd6d0749b5eb2022cd86215097a8b [Type] Bug Fix
    9abfe752886979180322890ff7c8014ddaee1d67 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    adf655d6423ef503be4f69dfb41151a5b1aaac04 [Type] Bug Fix
    e774992695326d196fd2e00b4cc30e1756f82442     [Type]     Bug Fix
    4fce5febbc72806be19cf7c4707b042b12c9fdf1 [Type] Bug Fix
    daf9c58d2e38a91ea38d12f6f30ede565869d47f Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    6e24ab2f2dbfcf7a76774c32e8a9e2ca9e3be9be [Type]
    1169f57da567bababed5f666a1ce19fcac49e846 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    2705e6918260d993a68d5175b42238022686cd80 [Type] Bug Fix
    3e1bb3974cfcd284e49bdbcc68953336761d2723 Chinese Format to insert fixed bug482
    f7acd9f58b14885c1c6d4df4497d20b651cb5f36 Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    2642184ac6c0be4a10bd405a59f005321ca75286 To keep only one memsicd process in system. -- Gou Runqiang
    578dfeae63f38d65a59328bdd7ba5ff6eccb1a0a Merge branch 'W1134' of 10.120.10.101:/home/ckt/work/catch_cd into W1134
    5ab3a6b447a05278cd41b1cd52d78f59e3abb5b3 [Type]     Bug Fix
    

    使用方法

    要干的事情其实很简单,就是逐个排查commit,发现罪魁祸首!逐个排查,是一件很闹心的事情,比如我有100多个commit,岂不是要做100多次, 要死人的哦。还好二分法出场,是的无所不在的算法,git bisect利用二分法,高效帮您找到问题所在。

    我们开始吧:

    1.看一下我们的历史

    $ git log --pretty=oneline
    11916c10051e13c27055228c122e36a22191d0a7 add iomanip
    246e1926361b6fe157d82820af332043533ab243 fix bugs
    1235436rertrb6fe157d82820af332043533ab243 add new feature
    deaea5e6f1d0aab171d1dc82055e226182b92695 add main.cc
    

    假设deaea5e6f1d0aab171d1dc82055e226182b92695 是好的,11916c10051e13c27055228c122e36a22191d0a7 系统crash

    2.开启bisect魔法工具

    $git bisect start
    $git bisect good deaea5e6f1d0aab171d1dc82055e226182b92695 
    $git bisect bad 11916c10051e13c27055228c122e36a22191d0a7
    

    系统将制动帮你把rev变到位于good和bad两个commit提交历史中间的一个commit 246e1926361b6fe157d82820af332043533ab243,然后你就make打包测试,验证这个commit是不是祸水

    3.继续验证commit

    假设246e1926361b6fe157d82820af332043533ab243仍然是坏的,那么执行
    $git bisect bad
    

    版本将切换到位于原始设置的good和最新的bad之间的commit,你再make打包测试,验证这个commit是不是祸水,如此反复,直到回 溯到真正引起问题的那个commit,然后你就可以跳到那个倒霉的committer面前,斥责他,殴打TA,但请不要忘记,那个倒霉蛋也可能就是你自 己。

    4.结束查找

    你揪出那祸水,打完收工,表忘记结束bisect,否则你会郁闷地发现,你最近的工作都不见那,因为你正处在一个过去的rev里面
    $git bisect reset
    
  • 相关阅读:
    HDU Railroad (记忆化)
    HDU 1227 Fast Food
    HDU 3008 Warcraft
    asp vbscript 检测客户端浏览器和操作系统(也可以易于升级到ASP.NET)
    Csharp 讀取大文本文件數據到DataTable中,大批量插入到數據庫中
    csharp 在万年历中计算显示农历日子出错
    csharp create ICS file extension
    CSS DIV Shadow
    DataTable search keyword
    User select fontface/color/size/backgroundColor设置 字体,颜色,大小,背景色兼容主流浏览器
  • 原文地址:https://www.cnblogs.com/yltleeral/p/4775611.html
Copyright © 2011-2022 走看看