现在有个项目,在一天的开发中,被某个工程师引入了一个bug,取系统并发上不去,直接锁死数据库连接。项目使用java平台,在svn上进行版本管理。我不想一个个版本code review排查,就想到了最暴力折半版本查找法,当然,在svn上做意味着要一个个版本checkout出来,这么大的项目,也是很费时的,这时,git-bisect是我唯一的选择了。
首先,把svn库导出为git库:
$ git svn clone -s http://svn.xxx.com/svn/xxxxx
然后,开始git bisect:
$ git bisect start
标记当前版本为错误:
$ git bisect bad
找到前一天的版本,做了一个tag(tag20090106),测试为正确的,标记一下:
$ git bisect good tag20090106
这时git会告诉你选取了一个中间版本,这时就开始编译,测试,如果不通过,执行:
$ git bisect bad
git会用折半方法再向前找一个中间版本,开始编译,测试,如果通过,执行:
$ git bisect good
git将继续定位revision,直到最后定位到一个引入错误的版本,这时再分析原因,再找惹麻烦的工程师PK,PK完了回来收工执行:
$ git bisect reset
git将返回到当前的HEAD.
分享到:
相关推荐
最后,介绍了如何使用Git Bisect快速定位引入错误的提交,以及Git的网络模型和常见工作流。 适合人群: 初级和中级Git使用者,尤其是希望深入了解Git内部机制和提高协作效率的研发人员。 使用场景及目标: ①初学...
Git Bisect是Git版本控制系统中的一个强大工具,用于在代码库的历史记录中自动定位引入问题的提交。这个“git-bisect-demo”仓库是专为介绍如何使用git bisect而设计的实例,通过实践帮助用户理解其工作原理和操作...
Git Bisect是Git版本控制系统中的一个强大工具,用于在代码库中快速定位引入错误的提交。这个名为"git-bisect-sample"的项目显然是为了帮助用户通过实践理解如何使用Git Bisect来追踪和修复问题。在本文中,我们将...
- **Debugging(git bisect)**:Git的`git bisect`命令帮助开发者快速定位引入问题的提交,节省大量调试时间。 - **代码审核**:Git支持代码审查,确保代码质量。 - **持续集成**:与持续集成工具结合,Git可以帮助...
`git bisect`是一个强大的调试工具,能帮助快速定位引入错误的提交。 总而言之,《ProGit_v2.1.15_git_V2_》这本书详细介绍了Git的各个方面,无论是初学者还是经验丰富的开发者,都能从中受益。通过学习和实践,...
`git bisect`是一个强大的调试工具,能帮助快速定位引入错误的提交。 除了核心功能,Git还支持各种插件和集成,可以与IDE(如Visual Studio Code、IntelliJ IDEA)或代码托管平台(如GitHub、GitLab)无缝对接。Git...
Git还支持通过`git blame`找出代码的修改者,以及`git bisect`用于快速定位引入错误的提交。 总之,Git-2.21.0-64-bit.zip提供的Git版本控制工具对于任何开发者而言都是必不可少的。它简化了代码的版本管理和团队...
5. 高级命令:Git提供了一系列高级命令,如`git rebase`用于整理提交历史,`git cherry-pick`用于选取特定提交应用到其他分支,以及`git bisect`用于快速定位bug。 在Git 2.18.0中,值得注意的新特性和改进包括: ...
除此之外,学习使用`git rebase`可以让你平滑地整合分支,`git bisect`帮助快速定位导致问题的提交,`git stash`则可以暂存未完成的工作以便切换到其他分支。 对于高级用户,理解Git的底层工作原理,如SHA哈希值、...
8. **改进的`bisect`命令**:Git的`bisect`功能用于快速定位引入错误的提交,2.5.0版本提供了更多选项和交互性,使得问题定位更加高效。 9. **更多API更新**:为开发者提供了更多的Git库API,使得开发基于Git的工具...
- 改进了`git bisect`,帮助开发者更快地定位问题。 使用Git进行日常开发时,你需要熟悉一些基本的命令,如: - `git init`:初始化一个新的Git仓库。 - `git clone`:复制远程仓库到本地。 - `git add`:将文件...
`git bisect`用于快速定位引入问题的提交,而`git blame`则可以查看每个代码行是谁在何时修改的。 总的来说,Git作为分布式版本控制系统,以其高效、灵活和强大的特性,已经成为软件开发的标准工具。它不仅简化了...
- `git bisect`是一种用于定位引入错误的提交的工具。 - 使用步骤: - `git bisect start`:启动bisect模式。 - `git bisect bad`:标记当前版本为“坏”版本。 - `git bisect good <commit-id>`:标记早期已知好...
- ** Bisect**:二分查找工具,用于快速定位引入错误的提交。 通过阅读《蒋鑫Git权威指南》,读者可以深入理解Git的工作流程,掌握高效使用Git的技巧,无论是个人项目还是团队协作,都能游刃有余。书中的实例和...
5. 高级命令:Git提供了一系列强大的命令,如`git blame`用于查看每一行代码是谁何时修改的,`git rebase`用于整洁地整合分支,以及`git bisect`用于快速定位问题引入的提交。 6. 丰富的生态系统:Git拥有庞大的...
此外,`git cherry-pick`可以将某个分支上的特定提交应用到另一个分支,而`git bisect`则能帮助用户快速定位引入问题的提交。 解决冲突是协同开发中常见的挑战。当两个或多个开发者修改了同一部分代码时,Git会提示...
9. **bisect**:Git的二分查找功能`git bisect`可以帮助快速定位引入问题的提交,节省大量调试时间。 10. **工作流策略**:除了前面提到的git flow,还有GitLab Flow、Forking Workflow等不同的工作流模式,选择...
- `git bisect`:通过二分查找的方式定位引入错误的提交。 - `git blame`:查看文件每一行的最后修改者及其修改时间。 #### 四、Git的优势 - **高效的数据完整性校验**:通过SHA-1哈希值确保每次提交的文件一致...