[Git] bisect
bisect๋ ๋ฌธ์ ์ถ์ ์ ์ํ ๋
ํนํ ๋ช
๋ น์ด ์ค ํ๋๋ค.
์ด๊ฑด ์ปค๋ฐ ํ์คํ ๋ฆฌ ๋จ์๋ก "์ด์ง ํ์"์ ์ํํ๋ ๊ธฐ๋ฅ์ด๋ค.
์์คํ
์ ์ด์ํ๋ค๋ณด๋ฉด, ์ด๋ค ์ปค๋ฐ์์ ๋ฌธ์ ๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋์ง ์ถ์ ํด์ผํ ์ผ์ด ๋๋ฌผ์ง ์๊ฒ ๋ฐ์ํ๋ค.
๋ฌธ์ ๊ฐ ๋ช
ํํ๋ค๋ฉด ๊ทธ๋ฅ ์์์ ์ ๊ณ ์น๋ฉด ๋์ง๋ง, ๊ทธ๋ฌ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ /ํ์ ์ฝ๋ ๋ณ๊ฒฝ์ ๋น๊ตํ๊ณ ๊ฒฐ๋ก ์ ๋์ถํ๋ ๊ฒ์ด ๊ฐ์ฅ ํจ๊ณผ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์ปค๋ฐ์ด ์ ๊ฑฐ๋, ๋ณธ์ธ์ด ๊ทธ ๋ณ๊ฒฝ ํ์คํ ๋ฆฌ๋ฅผ ์ผ์ถ ์๊ณ ์๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด ์ปค๋ฐ์ ์ฐพ์ ์ ์์ง๋ง, ์ปค๋ฐํ์คํ ๋ฆฌ๊ฐ ๋ฐฉ๋ํ ๋ ๊ฑฐ์ ์์คํ ์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ฌ๋ ๊ฒ๋ ์ฌ์ด ์ผ์ด ์๋๋ค.
bisect๋ ์ด๋ฐ ์ํฉ์ ์ฌ์ฉ๋๋ค. ์ด๊ฒ ์์ฒด๊ฐ ๊ท์ ๊ฐ์ด ์์์ ์ฐพ์์ฃผ๊ณ ๊ทธ๋ฌ๋๊ฑด ์๋๊ณ , ์ด์งํ์ํ๋ฏ์ด ์ปค๋ฐ ๋ด์ญ์ ์ด๋ํ๋ฉด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ง์ ์ ์ถ์ ํ๋ ์ํ๊ด๋ฆฌ๋ฅผ ํด์ค ๋ฟ์ด๋ค.
์ด๊ฑธ ์ฐ๋ ค๋ฉด ์ฐ์ start ๋ช ๋ น์ ์ฌ์ฉํด์ bisect ์ปจํ ์คํธ์ ์ง์ ํด์ผ ํ๋ค.
git bisect start

๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ปค๋ฐ์ด "๋ฌธ์ ๊ฐ ์๋" ์ปค๋ฐ์ด๋ผ๊ณ ๋งํนํด๋๋๋ค.
git bisect bad
์ด๊ฒ ์ด์งํ์์ ์ค๋ฅธ์ชฝ ๋ ์ข
๋ฃ์ง์ ์ด ๋๋ค.
๊ทธ๋ผ bisect log๋ฅผ ํตํด ์ํ ๋ด์ญ์ ํ์ธํ ์ ์๋ค.

๋ง์ฐฌ๊ฐ์ง๋ก ์ด์งํ์์ "์์์ "๋ ์ ์ํด์ผ ํ๋ค.
ํ์คํ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จ๋๋ ์ปค๋ฐ์ ํ๋ ์ ํํ ๋ค์์, ๊ทธ๊ฑธ "good(๋ฌธ์ ์์)"์ผ๋ก ๋งํนํ๋ค.
git bisect good <์ปค๋ฐํด์>

์, ์ด๋ฌ๋ฉด bisect๋ก ๋ฌธ์ ๋ฅผ ์ฐพ์ ์ค๋น๊ฐ ์๋ฃ๋ ๊ฒ์ด๋ค.
์ด์ ๋ถํฐ๋ ํ์ฌ ์ปค๋ฐ์์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด good, ๋ฌธ์ ๊ฐ ์๋ค๋ฉด bad๋ฅผ ์ฐ์ด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ผ ๋งํน์ ํ ๋๋ง๋ค ์ด์งํ์ ์๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก git์ด ์๋์ผ๋ก ๋ฒ์๋ฅผ ์ขํ๋ฉด์ ์ค์์นญ์ ํด์ค๋ค.
๊ทธ๋ ๊ฒ ๊ณ์ ์ฐ๋ค๋ณด๋ฉด, ๊ฒฐ๊ตญ์๋ good->bad๋ก ๋ณํํ๋ค๊ณ ํ๋จํ ์ ์๋ ์ปค๋ฐ์ ์ถ๋ก ํด๋ผ ์ ์๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ ๊ฒฐ๋ก ์ ๋ด์ค๋ค.
๋ณ๊ฑฐ ์๋๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง Git์์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋๋ผ๊ณ ์๊ฐํ๋ค.
์์คํ
์ ๋ณต์ก๋๊ฐ ๋๊ณ ์ฎ์ฌ์๋ ๊ฒ์ด ๋ง๋ค๋ฉด ๊ทธ๋ฅ ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ํ๋จ์ด ๋ค ๋๋ฌ๋ค๋ฉด, reset์ ์ฌ์ฉํด์ ์ปจํ
์คํธ๋ฅผ ์ด๊ธฐํํ๋ฉด ๋๋ค.
์ฐธ์กฐ
https://git-scm.com/docs/git-bisect
https://kevin3010.github.io/git/2025/11/02/At-the-end-you-use-git-bisect.html