add_fizzbuzz_testの模範解答 - mixi-inc/GitTraining GitHub Wiki
テストがどのcommitからコケ始めたかを発見
prove -r t
git bisect start
git bisect bad # HEAD
git bisect good master # masterはさっきテスト通したところ
git bisect run prove t/lib/MyFibo.t
# よしなに対応しcommit
歴史の整理
git rebase -i --autosquash master # git commit --fixup/--squash用
rebase例:
pick aa0aab3 Add empty getWordAtIndex method
fixup 59356be fixup! Add empty getWordAtIndex method
r 1e139b6 Implement getWordAtIndexAAAAAAAAAAAAAAAAAAAAAAAAA
pick 689a856 Add MyFizzBuzz test for 1
s d6319ad Add MyFizzBuzz test for 2
s efe1084 Add MyFizzBuzz test for 3
s 98a7268 Add MyFizzBuzz test for 4
s 226027e Add MyFizzBuzz test for 5
# pick 0932e8b [DEBUG] add warn $index
pick 16f68cb Add test for MyFizzBuzz for $index > 5
- コミットメッセージを直す
- Implement getWordAtIndexAAAAAAAAAAAAAAAAAAAAAAAAA
- Implement getWordAtIndex
- squashメッセージを書く
- Add MyFizzBuzz test
- ※ちなみに最後のテストはまだpassしてないので、 テストがしっかり通ってコードに問題がなくなったmerge直前にやるべき
- ※commitを分割したいときは、分割したいcommitにe/editと書くとrebase中に止まるので、 git reset HEAD~; git add <file> git commitの繰り返しとかで対応する