目录

介绍

找出是谁提出了犯罪界限

查找第一个被破坏的提交

自动化搜索过程

摘要


GIT是一个版本控制系统,无论使用哪种编程语言,它都可以为您提供强大的调试代码支持。在这篇文章中,我们将看到一些内置的git命令,如果项目中出现问题,这些命令可以使您的生活更轻松。

介绍

不幸的是,每个软件开发人员都知道事情经常出错。某些东西破坏了构建,另一些东西破坏了测试。有人进行了不符合编码准则等的更改。

在这种情况下,很难找出问题所在,有时需要很长时间和数天的调试时间。

幸运的是,Git在这种情况下也可以提供帮助。让我们看一些内置的Git命令,如果项目中出现问题,这些命令可以使您的生活更轻松。

找出是谁提出了犯罪界限

您正在阅读代码并找到一行。“到底是谁干的?” ——这是你的第一个问题。也许您不了解该行的目的,或者未遵循编码准则,或者这是错误的根本原因。您可以做的第一件事是检查该文件的git日志,并找出哪个提交包含相关更改。这可能非常耗时,特别是如果文件的历史很长,并且相关更改在很久以前就发生了。

还有另一个更有效的解决方案:git blame。

只需输入git blame filename。它将为您显示每一行,哪个提交是修改它的最后一个。

这样,很容易找出是谁进行了更改以及其目的是什么。

查找第一个被破坏的提交

您在代码中发现了一个错误。您知道一周前它还不存在,并且您还不知道确切的根本原因。如果您知道哪个提交引入了该错误,将会很有帮助,可以节省大量的调试时间。

在这种情况下,Git bisect是最好的解决方案。Git bisect是提交历史记录中的二进制搜索方法。它甚至可以处理合并提交。让我们看看它是如何工作的:

  1. 键入git bisect start——启动 bisect进程
  2. 键入git bisect bad——将当前提交标记为“bad”
  3. 键入git bisect good hash_of_the_last_working_commit——在您确定不存在该错误的位置,将最后一次提交标记为“good”
  4. 现在git bisect将检出介于当前和最后一次良好提交之间的提交。编译并测试。如果存在该错误,请键入git bisect bad,否则键入git bisect good。
  5. 重复步骤4,直到找不到提交为止

感谢二进制搜索的强大功能,它是查找破坏的提交的一种非常快速的方法。

如果错误不一致,可能会导致此方法出现问题,它会随机出现在某些提交中。

自动化搜索过程

手动测试提交可能很耗时。

幸运的是,它可以自动化。Git bisect还支持运行自动化测试。

  1. 实现一个测试,如果不存在该错误,则返回0,如果存在该错误,则返回非零(大多数测试框架已经以这种方式工作,因此在大多数情况下实现一些简单的单元测试就足够了)
  2. 键入git bisect start
  3. 键入git bisect bad
  4. 键入git bisect good hash_of_last_working_commit
  5. 键入git bisect run your_test

此方法将在存在您的错误的位置找到第一个提交。

摘要

当您必须找出导致错误的根本原因时,git blame和git guilty都非常有用。如果您足够频繁地进行提交,它可能比使用传统的调试方法快得多。

高级GIT教程-如何使用GIT调试代码?相关推荐

  1. Git教程--如何安装Git 如何高效地使用Git 合理使用Git分支

    原作者:杰森科茨  翻译&转载:https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively 介绍 现 ...

  2. Git教程 | (9) 自定义Git和使用SourceTree

    原文地址 目录 1. 自定义Git 2. 忽略特殊文件 3. 配置别名 4. 搭建Git服务器 5. 使用SourceTree 6. 总结 1. 自定义Git 在安装Git一节中,我们已经配置了use ...

  3. 【git教程】学习git是为了使用GitHub

    第一次了解到git的我根据教程整理的笔记,如果后续有继续学习,会更新. 初识git要认识的指令 在此之前到官网下载安装git,按默认配置就好. 然后打开git bash输入教程指令. reflog能够 ...

  4. 一份你女朋友都能读懂的 Git 教程,还不赶紧学起来!

    点击上方"IT平头哥联盟",选择"置顶或者星标" 你的关注意义重大! 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软件 金山打字通,到 ...

  5. idea 使用 git 教程

    idea 使用 git 教程 1.下载 git 下载地址: https://git-scm.com/download/win 64-bit Git for Windows Portable(简单版本) ...

  6. 史上最简单的git教程搭配Github和Gitee一起食用更佳

    史上最简单的git教程 开始之前 git的最简单使用 1. 安装 2. 配置 2.1 用户信息 3. 最基本使用 Github 1. 首先你需要一个账号 2. 你需要一个仓库 Gitee 开始之前 g ...

  7. 廖雪峰的GIT教程-读书笔记

    文章目录 廖雪峰的GIT教程 什么是GIT 集中式vs分布式版本控制系统 分支管理 创建版本库 GIT的版本回退 工作区和暂存区 工作区(Working Directory) 版本库(Reposito ...

  8. [廖雪峰Git教程]知识点整理

    Git 删除本地分支和远程分支 git branch -d test-2020 #删除本地分支 git push origin --delete test-2020 #删除远程分支git branch ...

  9. git gui怎么拉取项目代码_Git可视化极简易教程 —— Git GUI使用方法

    前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的成本,但是搜索了一下并 ...

最新文章

  1. Access和SQL server开启表间关系,并实现更新或删除母表数据自动更新或删除子表数据...
  2. 心动警告!你有一份礼包待领取→
  3. python笔记之if练习
  4. Cocos2d-x 3.0 简捷的物理引擎
  5. linux飞行模式自动开机,解决 win10飞行模式 无限自动开关 无法关闭
  6. js 获取子节点个数
  7. 用计算机弹假面骑士build,假面骑士build中只有资深粉丝才知道的梗第一弹
  8. 计算机系统确认的gmp附录,马义岭--中国GMP 附录确认与验证计算机化系统.pdf
  9. 查看CentOS版本信息
  10. IOS微信分享调起微信后立刻返回到app中无法分享的问题
  11. php代码访问记录系统,对某PHP发卡系统代码审计记录
  12. 百度网盘:未知错误播放失败1000
  13. 12个免费logo生成器
  14. 丢番图(Diophantine)方程MATLAB求解
  15. 要跳过磁盘检查,请在5秒内按任意键如何解决
  16. Linux 下的Chm 文件阅读器
  17. xxx is not a function
  18. UltraISO制作大于4G文件的光盘映像可启动U盘
  19. python应用seo_SEO快排技术和应用技术编程大全
  20. 无限循环抛出 No method found for class [B 这个异常

热门文章

  1. python绘制折线图先对数据进行处理_python气象数据分析并绘制折线图-女性时尚流行美容健康娱乐mv-ida网...
  2. 泰坦尼克号数据集_机器学习-预测泰坦尼克号生存概率
  3. zipkin使用_我的Spring Cloud(十):Zipkin 服务跟踪
  4. 设计师要的各式各样的设计软件插件都整理好了!
  5. 平面设计模板素材|越发流行的霓虹渐变趋势
  6. java学习笔记_2020全网最全Java面试题,学习笔记!
  7. net空间一次购买终身使用_net域名与org域名哪个投资价值更高?
  8. w10自动删除文件怎么关了_清理win10系统垃圾方法,自动更新文件删除介绍
  9. .sln vcxproj vcxproj.filter文件作用(转载)
  10. Go语言学习Day01