在Git代码库中追踪错误

GitGitBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Git是一个强大的版本控制系统,它允许开发者随时间追踪其代码库的变更。Git最有用的特性之一是能够找到引入错误的提交。在尝试追踪代码中的问题根源时,这会非常有帮助。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("`Git`")) -.-> git/BasicOperationsGroup(["`Basic Operations`"]) git/BasicOperationsGroup -.-> git/commit("`Create Commit`") subgraph Lab Skills git/commit -.-> lab-12739{{"`在Git代码库中追踪错误`"}} end

手动查找引入错误的提交

你的任务是手动在 git-playground 仓库中找到引入错误的提交。该仓库可在 https://github.com/labex-labs/git-playground 找到。错误是 file2.txt 文件应打印 “This is file2.txt.”,而不是 “This is file2.”。

要完成此实验,你需要使用 git bisect 命令在仓库的提交历史中进行二分查找。你需要将提交标记为 “好”(无错误)或 “坏”(有错误),直到你缩小到引入错误的提交。

  1. 切换到仓库目录:
cd git-playground
  1. 启动 git bisect 进程:
git bisect start
  1. 将当前提交标记为 “坏”:
git bisect bad HEAD
  1. 将带有 “Initial commit” 消息的提交标记为 “好”。Git 将自动为你检出一个新的提交进行测试:
git bisect good 3050fc0de

Git 将自动为你检出一个新的提交进行测试。5. 如果检出的 file2.txt 文件内容与错误不匹配,将其标记为 “好”:

cat file2.txt
git bisect good
  1. 如果检出的 file2.txt 文件内容与错误匹配,将其标记为 “坏”:
git bisect bad
  1. 一旦你找到了有错误的提交,重置 git bisect 进程:
git bisect reset

现在你可以检查有错误的提交中的代码更改,以找到错误的根源。

这是测试结果:

d22f46ba8c2d4e07d773c5126e9c803933eb5898 是第一个有错误的提交
commit d22f46ba8c2d4e07d773c5126e9c803933eb5898
Author: Hang <[email protected]>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

 file2.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 file2.txt

总结

在本实验中,你学习了如何使用 git bisect 命令手动在Git仓库中找到引入错误的提交。通过将提交标记为 “好” 或 “坏”,你可以在提交历史中进行二分查找,以快速缩小问题的根源。在调试复杂的代码库时,这种技术会非常有帮助。

您可能感兴趣的其他 Git 教程