主要观点:介绍如何利用 Git 进行调试,将 Git 作为调试工具加入工具带,通过多种 Git 命令如git ls-files
、git grep
、git blame
、git log
、git bisect
等提取代码信息来帮助调试。
关键信息:
- Git 基本概念:
commit
是代码的版本即快照,存储文件内容,有父提交引用;branch
是提交的引用;staging area
是准备提交的地方;working directory
是本地磁盘的代码目录。 - pathspec 与
git ls-files
:pathspec
可用于指定文件,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
的内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。