Elaborate ## Debugging with Git

This commit is contained in:
SI 2020-02-27 22:11:36 +09:00 committed by GitHub
parent 94b47ea011
commit 718e24db95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 8 deletions

View File

@ -1898,36 +1898,42 @@ $ git update-index --no-assume-unchanged file-to-stop-ignoring
## Git によるデバッグ ## Git によるデバッグ
コマンド [git-bisect](https://git-scm.com/docs/git-bisect) は、どのコミットがバグをもたらしたか Git 履歴を二分探索します。 コマンド [git-bisect](https://git-scm.com/docs/git-bisect) は、Git 履歴を二分探索してバグをもたらしたコミットを探します。
`master` ブランチにいるとして、失敗をやらかしたコミットを探してみましょう。次のようにして二分探索を始めます: いま `master` ブランチにいるとして、失敗をやらかしたコミットを探してみましょう。
次のコマンドで二分探索を始めます。
```sh ```sh
$ git bisect start $ git bisect start
``` ```
問題のあるコミットとないコミットを指定する必要があります。*現在の*バージョンに問題があり、`v1.1.1` は問題ないとします。
問題のあるコミットとないコミットを指定する必要があります。
*現在の*バージョンに問題があり、`v1.1.1` は問題ないとします。
```sh ```sh
$ git bisect bad $ git bisect bad
$ git bisect good v1.1.1 $ git bisect good v1.1.1
``` ```
すると `git-bisect` は選んだバージョンの中間のコミットを選んで調べ、問題があるかどうか尋ねてきます。 すると、`git-bisect` は選んだバージョンの中間のコミットを選んで調べ、問題があるかどうか尋ねてきます。
次のように表示されるはずです: 次のように表示されるはずです。
```sh ```sh
$ Bisecting: 5 revision left to test after this (roughly 5 step) $ Bisecting: 5 revision left to test after this (roughly 5 step)
$ [c44abbbee29cb93d8499283101fe7c8d9d97f0fe] Commit message $ [c44abbbee29cb93d8499283101fe7c8d9d97f0fe] Commit message
$ (c44abbb)$ $ (c44abbb)$
``` ```
このコミットに問題があるかどうか調べます。問題がない (good) 場合は次を実行します: このコミットに問題があるか調べましょう。
問題がない (good) 場合は次を実行します。
```sh ```sh
$ (c44abbb)$ git bisect good $ (c44abbb)$ git bisect good
``` ```
すると、`git-bisect` は別のコミットを選択します。このように `good``bad` を選んでいく作業は、調べるコミットがなくなるまで続きます。 すると、`git-bisect` はまた別のコミットを選択します。
終了したら、コマンドラインには問題をきたしている**最初の**コミットの詳細が表示されます。 このように `good``bad` を選んでいく作業は、調べるコミットがなくなるまで続きます。
終了したら、コマンドラインには問題をきたした**最初の**コミットの詳細が表示されます。
## 設定 ## 設定