git bisect
是一個有用的除錯工具。就背景來說,git bisect
是 git 指令,可用於追蹤錯誤被引入程式碼庫中的特定提交。
如果你可以找到程式碼正常運作的提交,以及包含錯誤的提交,你就不必手動追蹤有錯誤的提交。git bisect
指令會透過二元搜尋,協助你找到有錯誤的提交。例如,Git 文件中有 一個方便的 git bisect
指南,顯示了兩種使用方式。
git bisect
要在使用 Bundler 的專案中運作,需要一些可能不顯而易見的事情。
Gemfile.lock
需要在 git 儲存庫中,這樣每次提交都會載入相同的相依項。bundle install
,這樣才能安裝正確的相依項,並讓它們可以載入。git reset
。如果 bundle install
或執行測試會導致檔案系統變更,這會阻止 git checkout
測試下一個提交是否沒有重設。以下是一個執行 rake 工作 spec
的最小範例腳本
#!/usr/bin/env bash
bundle install
bin/rake spec
status=$?
git reset --hard HEAD
exit $status
另請參閱 rubygems/bundler#3726 的討論。