您当前的位置: 首页 >  git

寒冰屋

暂无认证

  • 0浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

高级GIT教程-如何使用GIT调试代码?

寒冰屋 发布时间:2020-06-03 21:37:33 ,浏览量:0

目录

介绍

找出是谁提出了犯罪界限

查找第一个被破坏的提交

自动化搜索过程

摘要

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都非常有用。如果您足够频繁地进行提交,它可能比使用传统的调试方法快得多。

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0817s