`

Git Bisect

阅读更多

今天做卡的时候,产品找来说,发现一个bug。原本是没有bug的,是因为不知道谁改了以后,出现了这个bug。按照惯例去了github,因为不知道是在哪里出的,所以找起来比较麻烦。恰好,被一个有多年工作经验的同事看到了,然我很快完成了。那就是biset。

这里假设一下,现在有五个个提交,粉笔为1 2 3 4 5 ;5 是距离最近的一次提交,,假设问题处在4上。然后就可以这样了。

在分支上首先输入命令,这是开始: 

git bisect start

 然后因为当前是代码是有错误的,所以打一个错误的标记:

git bisect bad

 又知道1是正确的,所以再打上一个标记:

git bisect good 1

 然后他就会按照他的错误各处一个定位,听同事说是二分法查找,这里可能定位到3 ,然后测试一下,如果正确的话,输入good即可,他会做出判断,或许是已经找到了问题,或许是下一个节点,这里是work的,所以应该打一个bad的标签。然后到4上,发现4是错误的,输入bad这时候他就可以确定是4是错误的,然后输入git diff 4 3 ,可以看出哪里有变化,这样既可以有针对性的去解决这个bug。

最后不要忘了做一个git bisect reset ,因为git 再做bisect的时候,会给提交添加某些信息。这里要把他们清除掉。

 

 

 

 

分享到:
评论

相关推荐

    git-bisect-demo:一个用于说明git bisect用法的仓库

    Git Bisect是Git版本控制系统中的一个强大工具,用于在代码库的历史记录中自动定位引入问题的提交。这个“git-bisect-demo”仓库是专为介绍如何使用git bisect而设计的实例,通过实践帮助用户理解其工作原理和操作...

    git-bisect-sample:样本回购遵循git bisect教程

    Git Bisect是Git版本控制系统中的一个强大工具,用于在代码库中快速定位引入错误的提交。这个名为"git-bisect-sample"的项目显然是为了帮助用户通过实践理解如何使用Git Bisect来追踪和修复问题。在本文中,我们将...

    git-dissect:分布式git bisect

    git-dissect:分布式biSECT git-dissect是git bisect的替代方法,它允许在多个主机上运行测试以更快地进行bisect。 它是受罗伯·霍尔茨(Rob Hoelz)的。安装 $ git clone ...

    GitKraken-Bisect-Atom:Git Bisect for Atom

    gitkraken-bisect软件包 打开一个面板,您可以在其中对当前打开的项目文件夹执行git bisect。 要打开二等分面板,请使用键盘快捷键Alt + B或打开命令面板并搜索GitKraken Bisect 。 这个软件包是团队进行的一项...

    git-cheetsheet

    - `git bisect good <commit_id>` 标记没有问题的提交。 - `git bisect visualize` 可视化二分查找过程。 - `git bisect reset` 重置二分查找状态。 以上是对Git Cheat Sheet中提到的主要命令的详细介绍。熟练...

    git 视频教程

    git视频教程.6-7.Git 命令 - git show、git shortlog、git describe、git bisect、git blame、git grep.mp4 git视频教程.8.1.Git 命令 - git cherry-pick.mp4 git视频教程.8.2.Git 命令 - git rebase.mp4 git视频...

    p4bisect:为 Perforce(P4) 提供等价于 git-bisect

    为 Perforce(P4) 提供等效于 git-bisect 的方法。 使用基于 ncurses 的 UI 来选择修订和标记修订。 (受 tig 项目的启发。) [用法]: 从获取 p4api 通过'P4API=/YOUR_P4API_PATH/p4api-2013.3.784164 make'...

    git命令学习并实践总结

    - `git bisect next`: 自动检出可能引入bug的提交。 #### 四、常见问题解答 - **如何撤销合并操作?** - 如果已经执行了`git merge`并出现了问题,可以使用`git revert <commit-id>`来撤销合并。这将创建一个新...

    git-2.18.0-3264合集

    5. 高级命令:Git提供了一系列高级命令,如`git rebase`用于整理提交历史,`git cherry-pick`用于选取特定提交应用到其他分支,以及`git bisect`用于快速定位bug。 在Git 2.18.0中,值得注意的新特性和改进包括: ...

    git2.31.1安装包

    除此之外,学习使用`git rebase`可以让你平滑地整合分支,`git bisect`帮助快速定位导致问题的提交,`git stash`则可以暂存未完成的工作以便切换到其他分支。 对于高级用户,理解Git的底层工作原理,如SHA哈希值、...

    精通git (pro git 中文版)

    Git还支持强大的历史查询,通过`git log`可以查看提交历史,`git blame`可以追踪每个代码行的最后修改者,`git bisect`则是用于查找引入问题的提交。对于错误操作,Git提供了`git reset`和`git revert`等命令来撤销...

    Git-2.4.0.2-windows-64bit

    此外,Git还提供了诸如`git rebase`、`git stash`、`git bisect`等高级功能,用于代码历史的整理、临时保存未完成的工作和问题排查。 总之,Git-2.4.0.2-windows-64bit是一个强大且广泛使用的版本控制工具,无论你...

    progit_v2.1.15_git_V2_

    `git bisect`是一个强大的调试工具,能帮助快速定位引入错误的提交。 总而言之,《ProGit_v2.1.15_git_V2_》这本书详细介绍了Git的各个方面,无论是初学者还是经验丰富的开发者,都能从中受益。通过学习和实践,...

    如何在Ubuntu 上安装Git与入门教程

    除了这些基本命令,还有许多其他高级特性,如`git fetch`、`git pull`和`git push`,它们用于与其他仓库交互,以及`git bisect`用于调试和查找问题。 协同工作是Git的一个核心优势,`git fetch`用于从远程仓库获取...

    GIT 权威指南书籍

    7. **版本回溯与撤销**:`git log`显示提交历史,`git reset`和`git revert`用于撤销改动,`git bisect`帮助定位引入问题的提交,这些都是恢复或修复错误的重要工具。 8. **工作流与最佳实践**:书中还会介绍常见的...

    Git版本控制1

    - **Debugging(git bisect)**:Git的`git bisect`命令帮助开发者快速定位引入问题的提交,节省大量调试时间。 - **代码审核**:Git支持代码审查,确保代码质量。 - **持续集成**:与持续集成工具结合,Git可以帮助...

    Git版本控制与协作管理技术详解.pdf

    最后,介绍了如何使用Git Bisect快速定位引入错误的提交,以及Git的网络模型和常见工作流。 适合人群: 初级和中级Git使用者,尤其是希望深入了解Git内部机制和提高协作效率的研发人员。 使用场景及目标: ①初学...

    Git-2.9.0-64-bit

    此外,Git还支持强大的交互式工具如`git rebase`用于整理提交历史,以及`git bisect`用于查找引入错误的提交。Git的工作流程通常包括开发、提交、分支管理、代码审查和合并,这使得多人协作变得高效且有序。 在...

Global site tag (gtag.js) - Google Analytics