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