💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## 7.10 使用Git 调试 **文件标注** 使用`git blame`标注一个文件,可以查看这个文件的每一行的最后修改时间以及是被谁修改的。 ``` $ git blame [file] ``` 通过 `-L` 参数可以限制查看的行数: ``` $ git blame -L 1,22 [file] ``` 通过 `-C` 参数,git 会分析文件中从别的地方复制过来的代码片段的原始出处。 **二分查找** 当无法确定哪次提交引入了问题时,可以通过 `bisect` 命令来二分地查找问题。 首先是启动,然后告诉 Git 当前版本是存在问题的(bad),并且指出已知的最后一次正常状态是哪次提交: ``` $ git bisect start $ git bisect bad $ git bisect good [good_commit] ``` 接下来 Git 会在两次提交间二分查找,对于每次查找,你需要测试并反馈给 Git: ``` $ git bisect good $ git bisect bad ``` 在确定问题是在哪个提交引入的之后,需要退出二分查找: ``` $ git bisect reset ``` 事实上,如果有一个脚本在项目是正常的情况下返回 0,在不正常的情况下返回非 0,可以使`git bisect`自动化这些操作。 首先,设定好项目正常以及不正常所在提交的二分查找范围。 你可以通过`bisect start`命令的参数来设定这两个提交,第一个参数是项目不正常的提交,第二个参数是项目正常的提交: ``` $ git bisect start HEAD v1.0 $ git bisect run test-error.sh ```