iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 24
0
自我挑戰組

Git學習筆記系列 第 24

互動式協助找出有問題的commit:git-bisect

  • 分享至 

  • xImage
  •  

這個指令我專案上還沒用過

有在自己的環境玩

挺有趣的

我們要先下

$ git bisect start

再下git bisect bad來告訴git 已知壞掉的版本為何

$ git bisect bad 1bd2f36

再下git bisect good 來告訴git 以確定是好的版本為何

$ git bisect good 37f6a88
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[49f5c491c88d1ac328bb8e8fe778a52a93ccb220] add div element

git會回覆這兩個commit之間有幾個commit

並且選一個commit把它check out 出來給我們測試

如果測試OK就回它

$ git bisect good

接著git會在挑選一個commit並且check out出來給我們測試

若測試不OK就回它

$ git bisect bad

如此反覆直到git回覆

b047b02ea83310a70fd603dc8cd7a6cd13d15c04 is first bad commit
commit b047b02ea83310a70fd603dc8cd7a6cd13d15c04
Author: PJ Hyett <pjhyett@example.com>
Date:   Tue Jan 27 14:48:32 2009 -0800

    secure this thing

:040000 040000 40ee3e7821b895e52c1695092db9bdc4c61d1730
f24d3c6ebcfc639b1a3814550e62d60b8e68a8e4 M  config

我們就可以確認b047b02ea83310a70fd603dc8cd7a6cd13d15c04這個commit就是造成問題的commit

當我們確認後記得要下指令git bisect reset 來重設 HEAD 到開始前的地方

$ git bisect reset

中文版說明

git-bisect 官方文件


上一篇
git blame 幫你找出程式碼內的那一行是誰最後動的
下一篇
合併多個commit為1個 use squash
系列文
Git學習筆記31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言