Skip to content

Latest commit

ย 

History

History
225 lines (200 loc) ยท 16.5 KB

File metadata and controls

225 lines (200 loc) ยท 16.5 KB

Git ใซใ‚ˆใ‚‹ใƒ‡ใƒใƒƒใ‚ฐ

Git ใซใฏใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใง็™บ็”Ÿใ—ใŸๅ•้กŒใ‚’ใƒ‡ใƒใƒƒใ‚ฐใ™ใ‚‹ใŸใ‚ใฎใƒ„ใƒผใƒซใ‚‚็”จๆ„ใ•ใ‚Œใฆใ„ใพใ™ใ€‚ Git ใฏใปใจใ‚“ใฉใ‚ใ‚‰ใ‚†ใ‚‹็จฎ้กžใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใงไฝฟใˆใ‚‹ใ‚ˆใ†ใซ่จญ่จˆใ•ใ‚Œใฆใ„ใ‚‹ใฎใงใ€ใ“ใฎใƒ„ใƒผใƒซใ‚‚้žๅธธใซๆฑŽ็”จ็š„ใชใ‚‚ใฎใงใ™ใ€‚ใ—ใ‹ใ—ใ€ใƒใ‚ฐใ‚’่ฆ‹ใคใ‘ใŸใ‚Šไธๅ…ทๅˆใฎๅŽŸๅ› ใ‚’ๆŽขใ—ใŸใ‚Šใ™ใ‚‹ใŸใ‚ใฎๅŠฉใ‘ใจใชใ‚‹ใงใ—ใ‚‡ใ†ใ€‚

ใƒ•ใ‚กใ‚คใƒซใฎๆณจ่จ˜

ใ‚ณใƒผใƒ‰ใฎใƒใ‚ฐใ‚’่ฟฝ่ทกใ—ใฆใ„ใ‚‹ใจใใซใ€Œใใ‚ŒใŒใ€ใ„ใคใฉใ‚“ใช็†็”ฑใง่ฟฝๅŠ ใ•ใ‚ŒใŸใฎใ‹ใ€ใŒ็Ÿฅใ‚ŠใŸใใชใ‚‹ใ“ใจใŒใ‚ใ‚‹ใงใ—ใ‚‡ใ†ใ€‚ใใ‚“ใชๅ ดๅˆใซใ‚‚ใฃใจใ‚‚ไพฟๅˆฉใชใฎใŒใ€ใƒ•ใ‚กใ‚คใƒซใฎๆณจ่จ˜ใงใ™ใ€‚ ใ“ใ‚Œใฏใ€ใƒ•ใ‚กใ‚คใƒซใฎๅ„่กŒใซใคใ„ใฆใ€ใใฎ่กŒใ‚’ๆœ€ๅพŒใซๆ›ดๆ–ฐใ—ใŸใฎใŒใฉใฎใ‚ณใƒŸใƒƒใƒˆใ‹ใ‚’่กจ็คบใ—ใพใ™ใ€‚ ใ‚‚ใ—ใ‚ณใƒผใƒ‰ใฎไธญใฎ็‰นๅฎšใฎใƒกใ‚ฝใƒƒใƒ‰ใซใƒใ‚ฐใŒใ‚ใ‚‹ใ“ใจใ‚’่ฆ‹ใคใ‘ใŸใ‚‰ใ€ใใฎใƒ•ใ‚กใ‚คใƒซใ‚’ git blame ใ—ใพใ—ใ‚‡ใ†ใ€‚ใใ†ใ™ใ‚Œใฐใ€ใใฎใƒกใ‚ฝใƒƒใƒ‰ใฎๅ„่กŒใŒใ„ใค่ชฐใซใ‚ˆใฃใฆๆ›ดๆ–ฐใ•ใ‚ŒใŸใฎใ‹ใŒใ‚ใ‹ใ‚Šใพใ™ใ€‚ ใ“ใฎไพ‹ใงใฏใ€-L ใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ไฝฟใฃใฆ 12 ่กŒ็›ฎใ‹ใ‚‰ 22 ่กŒ็›ฎใพใงใซๅ‡บๅŠ›ใ‚’้™ๅฎšใ—ใฆใ„ใพใ™ใ€‚

$ git blame -L 12,22 simplegit.rb
^4832fe2 (Scott Chacon  2008-03-15 10:31:28 -0700 12)  def show(tree = 'master')
^4832fe2 (Scott Chacon  2008-03-15 10:31:28 -0700 13)   command("git show #{tree}")
^4832fe2 (Scott Chacon  2008-03-15 10:31:28 -0700 14)  end
^4832fe2 (Scott Chacon  2008-03-15 10:31:28 -0700 15)
9f6560e4 (Scott Chacon  2008-03-17 21:52:20 -0700 16)  def log(tree = 'master')
79eaf55d (Scott Chacon  2008-04-06 10:15:08 -0700 17)   command("git log #{tree}")
9f6560e4 (Scott Chacon  2008-03-17 21:52:20 -0700 18)  end
9f6560e4 (Scott Chacon  2008-03-17 21:52:20 -0700 19)
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 20)  def blame(path)
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 21)   command("git blame #{path}")
42cf2861 (Magnus Chacon 2008-04-13 10:45:01 -0700 22)  end

ๆœ€ๅˆใฎ้ …็›ฎใฏใ€ใใฎ่กŒใ‚’ๆœ€ๅพŒใซๆ›ดๆ–ฐใ—ใŸใ‚ณใƒŸใƒƒใƒˆใฎ SHA-1 ใฎไธ€้ƒจใงใ™ใ€‚ ๆฌกใฎใตใŸใคใฎ้ …็›ฎใฏใ€ใใฎใ‚ณใƒŸใƒƒใƒˆใ‹ใ‚‰ๆŠฝๅ‡บใ—ใŸไฝœ่€…ๆƒ…ๅ ฑใจใ‚ณใƒŸใƒƒใƒˆๆ—ฅๆ™‚ใงใ™ใ€‚ใ“ใ‚Œใงใ€ใ„ใค่ชฐใŒใใฎ่กŒใ‚’ๆ›ดๆ–ฐใ—ใŸใฎใ‹ใŒ็ฐกๅ˜ใซใ‚ใ‹ใ‚Šใพใ™ใ€‚ ใใ‚Œใซ็ถšใ„ใฆใ€่กŒ็•ชๅทใจใƒ•ใ‚กใ‚คใƒซใฎไธญ่บซใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚ ^4832fe2 ใฎใ‚ณใƒŸใƒƒใƒˆใซ้–ขใ™ใ‚‹่กŒใซๆณจ็›ฎใ—ใพใ—ใ‚‡ใ†ใ€‚ใ“ใ‚Œใ‚‰ใฎ่กŒใฏใ€ใƒ•ใ‚กใ‚คใƒซใŒๆœ€ๅˆใซใ‚ณใƒŸใƒƒใƒˆใ•ใ‚ŒใŸใจใใฎใพใพใงใ‚ใ‚‹ใ“ใจใ‚’่กจใ—ใพใ™ใ€‚ ใ“ใฎใ‚ณใƒŸใƒƒใƒˆใฏใƒ•ใ‚กใ‚คใƒซใŒใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซๆœ€ๅˆใซ่ฟฝๅŠ ใ•ใ‚ŒใŸใจใใฎใ‚‚ใฎใงใ‚ใ‚Šใ€ใ“ใ‚Œใ‚‰ใฎ่กŒใฏใใ‚Œไปฅ้™ๅค‰ๆ›ดใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚ ใ“ใ‚Œใฏใกใ‚‡ใฃใจๆˆธๆƒ‘ใ†ใ‹ใ‚‚็Ÿฅใ‚Œใพใ›ใ‚“ใ€‚Git ใงใฏใ€ใ“ใ‚Œใพใง็ดนไป‹ใ—ใฆใใŸใ ใ‘ใงๅฐ‘ใชใใจใ‚‚ไธ‰็จฎ้กžไปฅไธŠใฎๆ„ๅ‘ณใง ^ ใ‚’ไฝฟใฃใฆใ„ใพใ™ใ‹ใ‚‰ใญใ€‚ใ—ใ‹ใ—ใ€ใ“ใ“ใงใฏใใ†ใ„ใ†ๆ„ๅ‘ณใซใชใ‚‹ใฎใงใ™ใ€‚

Git ใฎใ™ใฐใ‚‰ใ—ใ„ใจใ“ใ‚ใฎใฒใจใคใซใ€ใƒ•ใ‚กใ‚คใƒซใฎใƒชใƒใƒผใƒ ใ‚’ๆ˜Ž็คบ็š„ใซใฏ่ฟฝ่ทกใ—ใชใ„ใจใ„ใ†ใ“ใจใŒใ‚ใ‚Šใพใ™ใ€‚ ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆใ ใ‘ใ‚’่จ˜้Œฒใ—ใ€ใ‚‚ใ—ใƒชใƒใƒผใƒ ใ•ใ‚Œใฆใ„ใŸใฎใชใ‚‰ๆš—้ป™ใฎใ†ใกใซใใ‚Œใ‚’ๆคœๅ‡บใ—ใพใ™ใ€‚ ใ“ใฎๆฉŸ่ƒฝใฎ่ˆˆๅ‘ณๆทฑใ„ใจใ“ใ‚ใฏใ€ใƒ•ใ‚กใ‚คใƒซใฎใƒชใƒใƒผใƒ ใ ใ‘ใงใชใใ‚ณใƒผใƒ‰ใฎ็งปๅ‹•ใซใคใ„ใฆใ‚‚ๆคœๅ‡บใงใใ‚‹ใจใ„ใ†ใ“ใจใงใ™ใ€‚ git blame ใซ -C ใ‚’ๆธกใ™ใจ Git ใฏใใฎใƒ•ใ‚กใ‚คใƒซใ‚’่งฃๆžใ—ใ€ๅˆฅใฎใจใ“ใ‚ใ‹ใ‚‰ใ‚ณใƒ”ใƒผใ•ใ‚ŒใŸใ‚ณใƒผใƒ‰็‰‡ใŒใชใ„ใ‹ใฉใ†ใ‹ใ‚’ๆŽขใ—ใพใ™ใ€‚ ไพ‹ใˆใฐใ€GITServerHandler.m ใจใ„ใ†ใƒ•ใ‚กใ‚คใƒซใ‚’ใƒชใƒ•ใ‚กใ‚ฏใ‚ฟใƒชใƒณใ‚ฐใง่ค‡ๆ•ฐใฎใƒ•ใ‚กใ‚คใƒซใซๅˆ†ๅ‰ฒใ—ใŸใจใ—ใพใ—ใ‚‡ใ†ใ€‚ใใฎใ†ใกใฎใฒใจใคใŒ GITPackUpload.m ใงใ™ใ€‚ ใ“ใ“ใง -C ใ‚ชใƒ—ใ‚ทใƒงใƒณใ‚’ใคใ‘ใฆ GITPackUpload.m ใ‚’่ชฟในใ‚‹ใจใ€ใ‚ณใƒผใƒ‰ใฎใฉใฎ้ƒจๅˆ†ใ‚’ใฉใฎใƒ•ใ‚กใ‚คใƒซใ‹ใ‚‰ใ‚ณใƒ”ใƒผใ—ใŸใฎใ‹ใ‚’็Ÿฅใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

$ git blame -C -L 141,153 GITPackUpload.m
f344f58d GITServerHandler.m (Scott 2009-01-04 141)
f344f58d GITServerHandler.m (Scott 2009-01-04 142) - (void) gatherObjectShasFromC
f344f58d GITServerHandler.m (Scott 2009-01-04 143) {
70befddd GITServerHandler.m (Scott 2009-03-22 144)         //NSLog(@"GATHER COMMI
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 145)
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 146)         NSString *parentSha;
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 147)         GITCommit *commit = [g
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 148)
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 149)         //NSLog(@"GATHER COMMI
ad11ac80 GITPackUpload.m    (Scott 2009-03-24 150)
56ef2caf GITServerHandler.m (Scott 2009-01-05 151)         if(commit) {
56ef2caf GITServerHandler.m (Scott 2009-01-05 152)                 [refDict setOb
56ef2caf GITServerHandler.m (Scott 2009-01-05 153)

ใ“ใ‚Œใฏใปใ‚“ใจใ†ใซไพฟๅˆฉใงใ™ใ€‚ ้€šๅธธใฏใ€ใใฎใƒ•ใ‚กใ‚คใƒซใŒใ‚ณใƒ”ใƒผใ•ใ‚ŒใŸใจใใฎใ‚ณใƒŸใƒƒใƒˆใ‚’็Ÿฅใ‚‹ใ“ใจใซใชใ‚Šใพใ™ใ€‚ใ‚ณใƒ”ใƒผๅ…ˆใฎใƒ•ใ‚กใ‚คใƒซใซใŠใ„ใฆๆœ€ๅˆใซใใฎ่กŒใ‚’ใ•ใ‚ใฃใŸใฎใŒใ€ใใฎๅ†…ๅฎนใ‚’ใ‚ณใƒ”ใƒผใ—ใฆใใŸใจใใ ใ‹ใ‚‰ใงใ™ใ€‚ Git ใฏใ€ใใฎ่กŒใŒๆœฌๅฝ“ใซๆ›ธใ‹ใ‚ŒใŸใ‚ณใƒŸใƒƒใƒˆใŒใฉใ“ใงใ‚ใฃใŸใฎใ‹ใ‚’ (ใŸใจใˆๅˆฅใฎใƒ•ใ‚กใ‚คใƒซใงใ‚ใฃใŸใจใ—ใฆใ‚‚) ๆ•™ใˆใฆใใ‚Œใ‚‹ใฎใงใ™ใ€‚

ใƒ•ใ‚กใ‚คใƒซใฎๆณจ่จ˜ใ‚’ไฝฟใˆใฐใ€ใใฎๅ•้กŒใŒใฉใฎๆ™‚็‚นใงๅง‹ใพใฃใŸใฎใ‹ใ‚’็Ÿฅใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ ไฝ•ใŒใŠใ‹ใ—ใใชใฃใŸใฎใ‹ใŒใ‚ใ‹ใ‚‰ใšใ€ๆœ€ๅพŒใซใ†ใพใๅ‹•ไฝœใ—ใฆใ„ใŸใจใใ‹ใ‚‰ไฝ•ๅไฝ•็™พใ‚‚ใฎใ‚ณใƒŸใƒƒใƒˆใŒ่กŒใ‚ใ‚Œใฆใ„ใ‚‹ๅ ดๅˆใชใฉใฏใ€git bisect ใซ้ ผใ‚‹ใ“ใจใซใชใ‚‹ใงใ—ใ‚‡ใ†ใ€‚ bisect ใ‚ณใƒžใƒณใƒ‰ใฏใ‚ณใƒŸใƒƒใƒˆใฎๆญดๅฒใซๅฏพใ—ใฆไบŒๅˆ†ๆŽข็ดขใ‚’่กŒใ„ใ€ใฉใฎใ‚ณใƒŸใƒƒใƒˆใงๅ•้กŒใŒๆททๅ…ฅใ—ใŸใฎใ‹ใ‚’ๅฏ่ƒฝใช้™ใ‚Šๆ‰‹ๆ—ฉใ่ฆ‹ใคใ‘ๅ‡บใ›ใ‚‹ใ‚ˆใ†ใซใ—ใพใ™ใ€‚

่‡ชๅˆ†ใฎใ‚ณใƒผใƒ‰ใ‚’ใƒชใƒชใƒผใ‚นใ—ใฆ้‹็”จ็’ฐๅขƒใซใƒ—ใƒƒใ‚ทใƒฅใ—ใŸใ‚ใจใซใ€ใƒใ‚ฐๅ ฑๅ‘Šใ‚’ๅ—ใ‘ๅ–ใฃใŸใจไปฎๅฎšใ—ใพใ—ใ‚‡ใ†ใ€‚ใใฎใƒใ‚ฐใฏ้–‹็™บ็’ฐๅขƒใงใฏๅ†็พใ›ใšใ€ใชใœใใ‚“ใชใ“ใจใซใชใ‚‹ใฎใ‹ๆƒณๅƒใ‚‚ใคใใพใ›ใ‚“ใ€‚ ใ‚ณใƒผใƒ‰ใ‚’ใ‚ˆใ่ชฟในใฆๅ•้กŒใ‚’ๅ†็พใ•ใ›ใ‚‹ใ“ใจใฏใงใใพใ—ใŸใŒใ€ไฝ•ใŒๆ‚ชใ‹ใฃใŸใฎใ‹ใŒใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ ใ“ใ‚“ใชๅ ดๅˆใซใ€ไบŒๅˆ†ๆŽข็ดขใงๅŽŸๅ› ใ‚’็‰นๅฎšใ™ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚ ใพใšใ€git bisect start ใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚ใใ—ใฆๆฌกใซ git bisect bad ใ‚’ไฝฟใฃใฆใ€็พๅœจใฎใ‚ณใƒŸใƒƒใƒˆใŒๅฃŠใ‚ŒใŸ็Šถๆ…‹ใงใ‚ใ‚‹ใ“ใจใ‚’ใ‚ทใ‚นใƒ†ใƒ ใซไผใˆใพใ™ใ€‚ ๆฌกใซใ€ใพใ ๅฃŠใ‚Œใฆใ„ใชใ‹ใฃใŸใจใ‚ใ‹ใฃใฆใ„ใ‚‹็›ด่ฟ‘ใฎใ‚ณใƒŸใƒƒใƒˆใ‚’ git bisect good [good_commit] ใงไผใˆใพใ™ใ€‚

$ git bisect start
$ git bisect bad
$ git bisect good v1.0
Bisecting: 6 revisions left to test after this
[ecb6e1bc347ccecc5f9350d878ce677feb13d3b2] error handling on repo

Git ใฏใ€ใพใ ใ†ใพใๅ‹•ใ„ใฆใ„ใŸใจๆŒ‡ๅฎšใ•ใ‚ŒใŸใ‚ณใƒŸใƒƒใƒˆ (v1.0) ใจ็พๅœจใฎๅฃŠใ‚ŒใŸใƒใƒผใ‚ธใƒงใƒณใฎ้–“ใซใฏ 12 ใฎใ‚ณใƒŸใƒƒใƒˆใŒใ‚ใ‚‹ใจใ„ใ†ใ“ใจใ‚’ๆคœๅ‡บใ—ใพใ—ใŸใ€‚ใใ—ใฆใ€ใใฎใกใ‚‡ใ†ใฉ็œŸใ‚“ไธญใซใ‚ใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ‚’ใƒใ‚งใƒƒใ‚ฏใ‚ขใ‚ฆใƒˆใ—ใพใ—ใŸใ€‚ ใ“ใ“ใงใƒ†ใ‚นใƒˆใ‚’ๅฎŸ่กŒใ™ใ‚Œใฐใ€ใ“ใฎใ‚ณใƒŸใƒƒใƒˆใงๅŒใ˜ๅ•้กŒใŒ็™บ็”Ÿใ™ใ‚‹ใ‹ใฉใ†ใ‹ใŒใ‚ใ‹ใ‚Šใพใ™ใ€‚ ใ‚‚ใ—ๅ•้กŒใŒ็™บ็”Ÿใ—ใŸใชใ‚‰ใ€ๅฎŸ้š›ใซๅ•้กŒใŒๆททๅ…ฅใ—ใŸใฎใฏใใ‚Œใ‚ˆใ‚Šๅ‰ใฎใ‚ณใƒŸใƒƒใƒˆใ ใจใ„ใ†ใ“ใจใซใชใ‚Šใพใ™ใ€‚ใใ†ใงใชใ‘ใ‚Œใฐใ€ใใ‚Œไปฅ้™ใฎใ‚ณใƒŸใƒƒใƒˆใงๅ•้กŒใŒๆททๅ…ฅใ—ใŸใฎใงใ—ใ‚‡ใ†ใ€‚ ใ“ใ“ใงใฏใ€ๅ•้กŒใŒ็™บ็”Ÿใ—ใชใ‹ใฃใŸใ‚‚ใฎใจใ—ใพใ™ใ€‚git bisect good ใง Git ใซใใฎๆ—จใ‚’ไผใˆใ€ๆ—…ใ‚’็ถšใ‘ใพใ—ใ‚‡ใ†ใ€‚

$ git bisect good
Bisecting: 3 revisions left to test after this
[b047b02ea83310a70fd603dc8cd7a6cd13d15c04] secure this thing

ใพใŸๅˆฅใฎใ‚ณใƒŸใƒƒใƒˆใŒใ‚„ใฃใฆใใพใ—ใŸใ€‚ๅ…ˆใปใฉ่ชฟในใŸใ‚ณใƒŸใƒƒใƒˆใจใ€ŒๅฃŠใ‚Œใฆใ„ใ‚‹ใ€ใจไผใˆใŸใ‚ณใƒŸใƒƒใƒˆใฎ็œŸใ‚“ไธญใซใ‚ใ‚‹ใ‚‚ใฎใงใ™ใ€‚ ใตใŸใŸใณใƒ†ใ‚นใƒˆใ‚’ๅฎŸ่กŒใ—ใ€ไปŠๅบฆใฏใ“ใฎใ‚ณใƒŸใƒƒใƒˆใงๅ•้กŒใŒๅ†็พใ—ใŸใ‚‚ใฎใจใ—ใพใ™ใ€‚ใใ‚Œใ‚’ Git ใซไผใˆใ‚‹ใซใฏ git bisect bad ใ‚’ไฝฟใ„ใพใ™ใ€‚

$ git bisect bad
Bisecting: 1 revisions left to test after this
[f71ce38690acf49c1f3c9bea38e09d82a5ce6014] drop exceptions table

ใ“ใฎใ‚ณใƒŸใƒƒใƒˆใฏใ†ใพใๅ‹•ใใพใ—ใŸใ€‚ใจใ„ใ†ใ‚ใ‘ใงใ€ๅ•้กŒใŒๆททๅ…ฅใ—ใŸใ‚ณใƒŸใƒƒใƒˆใ‚’็‰นๅฎšใ™ใ‚‹ใŸใ‚ใฎๆƒ…ๅ ฑใŒใ“ใ‚Œใงใ™ในใฆๆ•ดใ„ใพใ—ใŸใ€‚ Git ใฏๅ•้กŒใŒๆททๅ…ฅใ—ใŸใ‚ณใƒŸใƒƒใƒˆใฎ SHA-1 ใ‚’็คบใ—ใ€ใใฎใ‚ณใƒŸใƒƒใƒˆๆƒ…ๅ ฑใจใฉใฎใƒ•ใ‚กใ‚คใƒซใŒๅค‰ๆ›ดใ•ใ‚ŒใŸใฎใ‹ใ‚’่กจ็คบใ—ใพใ™ใ€‚ใ“ใ‚Œใ‚’ไฝฟใฃใฆใ€ใ„ใฃใŸใ„ไฝ•ใŒๅŽŸๅ› ใงใƒใ‚ฐใŒ็™บ็”Ÿใ—ใŸใฎใ‹ใ‚’็ชใๆญขใ‚ใพใ™ใ€‚

$ git bisect good
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

ๅŽŸๅ› ใŒใ‚ใ‹ใฃใŸใ‚‰ใ€ไฝœๆฅญใ‚’ๅง‹ใ‚ใ‚‹ๅ‰ใซ git bisect reset ใ‚’ๅฎŸ่กŒใ—ใฆ HEAD ใ‚’ไฝœๆฅญๅ‰ใฎ็Šถๆ…‹ใซๆˆปใ•ใชใ‘ใ‚Œใฐใชใ‚Šใพใ›ใ‚“ใ€‚ใใ†ใ—ใชใ„ใจ้ขๅ€’ใชใ“ใจใซใชใฃใฆใ—ใพใ„ใพใ™ใ€‚

$ git bisect reset

ใ“ใฎๅผทๅŠ›ใชใƒ„ใƒผใƒซใ‚’ไฝฟใˆใฐใ€ไฝ•็™พใ‚‚ใฎใ‚ณใƒŸใƒƒใƒˆใฎไธญใ‹ใ‚‰ใƒใ‚ฐใฎๅŽŸๅ› ใจใชใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ‚’ๆ•ฐๅˆ†ใง่ฆ‹ใคใ‘ใ ใ›ใ‚‹ใ‚ˆใ†ใซใชใ‚Šใพใ™ใ€‚ ๅฎŸ้š›ใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใŒๆญฃๅธธใชใจใใซ 0 ใ‚’่ฟ”ใ—ใฆใฉใ“ใ‹ใŠใ‹ใ—ใ„ใจใใซ 0 ไปฅๅค–ใ‚’่ฟ”ใ™ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’็”จๆ„ใ—ใฆใŠใ‘ใฐใ€git bisect ใ‚’ๅฎŒๅ…จใซ่‡ชๅ‹•ๅŒ–ใ™ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚ ใพใšใ€ๅ…ˆใปใฉใจๅŒใ˜ใใ€ๅฃŠใ‚Œใฆใ„ใ‚‹ใ‚ณใƒŸใƒƒใƒˆใจๆญฃใ—ใๅ‹•ไฝœใ—ใฆใ„ใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚ ใ“ใ‚Œใฏ bisect start ใ‚ณใƒžใƒณใƒ‰ใง่กŒใ†ใ“ใจใ‚‚ใงใใพใ™ใ€‚ใพใšๆœ€ๅˆใซๅฃŠใ‚Œใฆใ„ใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ€ใใ—ใฆใใฎๅพŒใซๆญฃใ—ใๅ‹•ไฝœใ—ใฆใ„ใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ‚’ๆŒ‡ๅฎšใ—ใพใ™ใ€‚

$ git bisect start HEAD v1.0
$ git bisect run test-error.sh

ใ“ใ†ใ™ใ‚‹ใจใ€ใƒใ‚งใƒƒใ‚ฏใ‚ขใ‚ฆใƒˆใ•ใ‚ŒใŸใ‚ณใƒŸใƒƒใƒˆใซๅฏพใ—ใฆ่‡ชๅ‹•็š„ใซ test-error.sh ใ‚’ๅฎŸ่กŒใ—ใ€ๅฃŠใ‚Œใ‚‹ๅŽŸๅ› ใจใชใ‚‹ใ‚ณใƒŸใƒƒใƒˆใ‚’่ฆ‹ใคใ‘ๅ‡บใ™ใพใง่‡ชๅ‹•็š„ใซๅ‡ฆ็†ใ‚’็ถšใ‘ใพใ™ใ€‚ make ใ‚„ make testsใ€ใใฎไป–่‡ชๅ‹•ใƒ†ใ‚นใƒˆใ‚’ๅฎŸ่กŒใ™ใ‚‹ใŸใ‚ใฎใƒ—ใƒญใ‚ฐใƒฉใƒ ใชใฉใ‚’ใ“ใ“ใงๅฎŸ่กŒใ•ใ›ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚