LoginSignup
21
18

More than 5 years have passed since last update.

問題のあるコミットを特定する ( git bisect )

Last updated at Posted at 2015-07-10

内容

  • 基本的な使い方は他の記事を参照してください。
  • しかし、ビルドが失敗するなど、テストがそもそも失敗した時の対応がどこにもまとめられていないので
    サマリ的な要素も含めてまとめてみます。
    • ぶっちゃけgit bisect skipの紹介と、
      git bisect run時にskipをさせるために125を返すということの紹介だけ。

基本的な使い方

手動

  1. 開始

    • 基本

      $ git bisect start
      $ git bisect bad <bad commit>
      $ git bisect good <good commit>
      
    • ワンライナ
      git bisect start <bad commit> <good commit>

  2. 自動で中間のコミットがチェックアウトされた状態になる

  3. 成否を入力

    • 成功 git bisect good
    • 失敗 git bisect bad
    • テスト不能 git bisect skip
  4. 2.に戻る

    • 特定したらgit showした時のような見た目になる

入力を間違えた場合

  1. git bisect log > <temporary file name>を適当なファイルに保存
  2. 入力を間違えたところ以降を削除する
    • 恐らく最後の2行(コメント部分と実行したコマンド)
    • 間違えてない部分はそのままでもいいかも?(要検証)
  3. git bisect resetで一旦終了
  4. git bisect replay <temporary file name>でログの内容を再実行

自動

  1. テストスクリプトを書く

    • 終了コードによってテストの結果が判定される

      終了コード 意味
      0 成功
      1〜128(125を除く) 失敗
      125 テスト不能
  2. テスト開始処理(手動の時と同じなので割愛)

  3. テスト実行
    git bisect run <script>

  4. 特定したらgit showした時のような見た目になる

参考記事

21
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
18