Git 作为调试工具

主要观点:介绍如何利用 Git 进行调试,将 Git 作为调试工具加入工具带,通过多种 Git 命令如git ls-filesgit grepgit blamegit loggit bisect等提取代码信息来帮助调试。
关键信息

  • Git 基本概念commit是代码的版本即快照,存储文件内容,有父提交引用;branch是提交的引用;staging area是准备提交的地方;working directory是本地磁盘的代码目录。
  • pathspec 与git ls-filespathspec可用于指定文件,git ls-files可列出符合pathspec的文件,*可匹配任意字符,:加魔法词有特殊作用。
  • Git Grep:基于 Git 的grep工具,搜索速度快,可通过--heading--break等标志分组输出,-W可显示包含搜索词的整个函数。
  • Git Blame:显示每行最后修改者、提交和时间戳,但只能显示最后修改信息,不是代码真相的来源。
  • Git Log:查看提交历史,可通过传递pathspec限制输出,使用-p显示补丁,-L限制搜索范围,-S查找字符串增减的提交。
  • Git Bisect:用于查找导致程序出错的提交,可手动或自动进行二分查找,手动时需指定好“好”“坏”提交,自动时需提供判断提交好坏的命令。
    重要细节:以具体代码示例和图片展示各 Git 命令的使用和效果,如在简单 Python 脚本中使用git bisect查找除法错误的提交等。最后提到该文章在 Hacker News 达到第 5 名,并更新了git log -L:funcname:file的内容。
阅读 13
0 条评论