Git コードベースにおけるバグの追跡

GitGitBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Git は、開発者がコードベースの変更を時間の経過とともに追跡できる強力なバージョン管理システムです。Git の最も便利な機能の 1 つは、バグを引き起こしたコミットを見つける機能です。これは、コードの問題の原因を追跡しようとするときに非常に役立ちます。


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." ではなく "This is file2.txt." を表示する必要があるということです。

この実験を完了するには、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 は最初の不良コミットです
コミット d22f46ba8c2d4e07d773c5126e9c803933eb5898
著者: Hang <[email protected]>
日付:  2023年4月26日 水曜日 14:16:25 +0800

    file2.txt を追加

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

まとめ

この実験では、Git リポジトリでバグを引き起こしたコミットを手動で見つけるために git bisect コマンドをどのように使用するかを学びました。コミットを「正常」または「不良」としてマークすることで、コミット履歴を二分探索して、迅速に問題の原因を絞り込むことができます。この技術は、複雑なコードベースのデバッグ時に非常に役立ちます。