Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git Bootcamp
Search
Recruit Technologies
June 02, 2017
Technology
5
40k
Git Bootcamp
2017年4~5月開催「ブートキャンプ特別講座」の資料になります。
Recruit Technologies
June 02, 2017
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
640
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
41k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
50k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
770
Engineer Career Talk
lycorp_recruit_jp
0
190
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
180
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
910
Storybook との上手な向き合い方を考える
re_taro
4
540
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
Taming you application's environments
salaboy
0
200
日経電子版のStoreKit2フルリニューアル
shimastripe
1
150
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
540
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Building Your Own Lightsaber
phodgson
103
6.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
YesSQL, Process and Tooling at Scale
rocio
169
14k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Bash Introduction
62gerente
608
210k
Done Done
chrislema
181
16k
Code Review Best Practice
trishagee
64
17k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Designing for humans not robots
tammielis
250
25k
What's in a price? How to price your products and services
michaelherold
243
12k
Transcript
Git Bootcamp 2017, 12th April @ Recruit Technologies
Git Bootcamp • ΧϦΩϡϥϜ • Git-it Ͱ Git ͷ͍ํΛମܥతʹֶͿ •
Git Tips ू • ͜Μͳ࣌Ͳ͏͢Δʁ Git ԋशฤ • ࣮ࡍʹGitHubͰNode.jsʹίϯτϦϏϡʔτͯ͠ΈΔ
Gitͱ • ࢄόʔδϣϯཧγεςϜ • "ࢄ"ͷ෦ʹ͔ͳΓྗ͞ΕͯΔ • ࠓ։ൃऀͰͷdefact standard
Git Χϧλ • GitͷΠϝʔδΛڧԽͤ͞ΔͨΊͷΧϧλ • ্ख͘ΠϝʔδΛͭͳ͛ΒΕΔͰ͠ΐ͏͔
A B C D
A B C D git checkout -b fix/42
A B C D git checkout -b fix/42; git commit
A B C D git merge --ff-only
A B C D git merge --no-ff
ͬͱ׳Ε͍͖ͯ·͠ΐ͏
Git it Λ࣮ߦ͢Δ • Լهͷͱ͜Ζ͔Βμϯϩʔυ࣮ͯ͠ߦ • https://github.com/jlord/git-it-electron/releases • ΞϓϦέʔγϣϯϑΥϧμͷԼʹgit-itΛஔ্ͨ͠Ͱ ࣮ߦ͍ͯͩ͘͠͞
• securityͷΤϥʔ͕ग़ͨΒઃఆ>ηΩϡϦςΟͱϓϥΠ όγ>μϯϩʔυͨ͠ΞϓϦέʔγϣϯͷ࣮ߦڐՄ> ͯ͢ͷΞϓϦέʔγϣϯΛڐՄʢ͋ͱͰͯ͠Ͷʣ
Git it Λ࣮ߦ͢Δ • େମ1࣌ؒ͘Β͍Λ҆ʹશ෦ճ͍ͯͩ͘͠͞ɻ • git ͷίϚϯυʹ৮Εͭͭ͜ͷػձʹGitHubͷ ΞΧϯτ͕ͳ͍ਓ࡞͓͖ͬͯ·͠ΐ͏ɻ •
ૣ͍ਓͰ1࣌ؒ͘Β͍ɺͯ͘2࣌ؒ͘Β͍Ͱऴ ΘΔҹͰ͕͢ɺऴΘΓํ࣍ୈͰ࣍ͷΧϦΩϡϥ ϜΛܾΊ·͢ɻ
͍͍ͩͨΈΜͳ͕ऴΘͬͨΒ ࣍ʹਐΈ·͢
ͦͷલʹ • ΈΜͳͷҙݟ͕ฉ͍ͯΈ͍ͨ • GitͬͯҰޱʹݴͬͯΈΜͳ͕Γ͍ͨॴ ࠔͬͯΔͱ͜ΖΛڞ༗͓͖͍ͯͨ͠ • ͦͷ্Ͱ͕Θ͔ΔݟΛڞ༗͢Δ
Git খ࢙
NOTE: ͜Ε͔Β͢શ͘ʹཱ ͪ·ͤΜɻ ιϑτΣΞখͱͯ͠ฉ͍ ͍ͯͩ͘͞ɻ
Gitখ࢙ • Linus TorvaldsɺLinuxΛ࡞ͬͨࠓΛੜ͖Δι ϑτΣΞͷઆ͕LinuxͷΧʔωϧΛཧ͢ ΔͨΊʹ2िؒͰ։ൃͨ͠ͷ͕Git
Gitখ࢙ • Before Git: 90ޙɺLinuxΧʔωϧί ϛϡχςΟͱ͋Δʹৗʹ·͞Ε͍ͯͨ • ͱ͋ΔͱɺΧʔωϧ։ൃऀ͕ଟ͘ͳͬͯ ͖ͨ͜ͱʹؔΘΒͣɺશһ͕ϋοϐʔʹͳΔ SCM(Software
Configuration Management) πʔϧ͕ଘࡏ͠ͳ͍͜ͱͰ͢ɻ
Gitখ࢙ • Before Git: Linus Torvalds CVS Λௐࠪ͠ ·ͨ͠ɻ͔ͦ͠͠ͷ݁Ռɻɻɻ
Gitখ࢙ • Before Git: Linus Torvalds CVS Λௐࠪ͠ ·ͨ͠ɻ͔ͦ͠͠ͷ݁Ռɻɻɻ
࠷ѱ
Gitখ࢙ • Before Git: tarball, diff, patch Ͱӡ༻͢Δ ɺࣗͰίϯϑϦΫτղফͨ͠Γɺpatchͷ ϚʔδΛͨ͠Γͯͨ͠ͷͰɺɺɺ
ແཧʂ
Ұํͦͷࠒ
Gitখ࢙ • Before Git: Larry McVoy (Sun Microsystems ͷΤϯδχΞ)͕BitKeeperͱݺΕΔࢄ όʔδϣϯཧγεςϜΛ࡞Δ
Hey Linus! ͜ΕͲ͏ΑʁLinux։ൃʹऔΓೖΕͯ Έͳ͍ʁ
Gitখ࢙ • Larry McVoy: BitKeeper Λ࡞ΔͨΊͷձࣾͰ ͋Δ BitMover Λ࢝ΊΔɻ BitKeeper
ͬͯΊͯ͘Εʔ
Gitখ࢙ • LinusୡBitKeeperΛ͍࢝Ίɺ݁Ռͱͯ͠ LinuxΧʔωϧϋοΧʔͷଟ͘ϋοϐʔʹɻ BitKeeper ͍͍͡ΌΜ
͔͠͠
Gitখ࢙ • BitKeeperʹผͳ͕͋Γ·ͨ͠ • BitKeeperͷϥΠηϯεएׯ෩มΘΓ • BitKeeperOSSʹؔΘΒͣɺϑϦʔͰ͏ ͨΊʹશͯͷChangeLogΛެ։͠ͳ͍ͱ͍ ͚ͳ͍ͱ͍͏ͷ
Gitখ࢙ • ΤϯλʔϓϥΠζͰBitKeeperΛ͏ʹ༻ ϥΠηϯεΛങͬͯprivateͰӡ༻͢Δඞཁ͕ ͋Δ • BitKeeperΛforkͯ͠উखʹެ։͞Εͳ͍Α͏ ͳpatchΛద༻͢Δౕग़͖ͯͯϥΠηϯεҧ Λ͖͗Εͳ͘ͳΔڪΕ͋ͬͨ
Gitখ࢙ • ఔͳͯ͘͠BitKeeperͷιʔείʔυOpen Ͱͳ͘ͳͬͯ͠·ͬͨɻ BitKeeperͷίʔυOSSͰͳ͘͠·͢
Gitখ࢙ • LinuxΧʔωϧͷϝϯόʔ͜Εʹࠔ͠·͠ ͨɺLinuxͱ͍͏OSSͷਃ͠ࢠͱݴ͏͖ ιϑτΣΞͷιʔεOSSͰཧ͞Ε͍ͯ ͳ͍ͷͰ͢ɻ
Gitখ࢙ • Linus͔Β͢Ειʔείʔυ͕ཧͰ͖Ε ͍͍ͷͰͦͷลͷಛʹؾʹͯ͠ͳ͔ͬ ͕ͨɺBitKeeperͷͦͷ··फڭɾ࣏ ૪ʹͳ͍͖ͬͯ·ͨ͠ɾɾɾ ͕͋ΔͳΒͬͱ͍͍ͷ Λ࡞ͬͯ͘ΕΑ
Gitখ࢙ • Andrew Tridgell: rsync/Sambaͷ࡞ऀ BitKeeperͷϦόʔεΤϯδχ ΞϦϯάͯ͠৽͍͠ͷ࡞Ζ͏
Gitখ࢙ • BitKeeperΛΤϛϡϨʔτ͢ΔίʔυΛॻ͍ͯ શʹϦόʔεΤϯδχΞϦϯά͢Δମ੍ • ͦΕʹؾ͍ͮͨBitKeeperଆ҉߸ԽͳͲͰର ࡦ • LinuxଆͱBitKeeperଆͷؔѱԽ͍͖ͯ͠ ·ͨ͠
Gitখ࢙ • LinusͷݟղɿBitKeeperΛ͑Δͬͱ͍͍ ͷΛ࡞ͬͯͳ͍ɺͬͯΔ͜ͱΠλζϥʹ ؔΛѱԽ͍ͤͯ͞Δ͚ͩͩɻ फڭɾ࣏૪͏Μ͟Γͩ
Gitখ࢙ • Larry / Linus 2005ʹిͰձٞΛ͠ɺ ࣌ؒͷٞͷɺBitKeeperΛLinuxͰΘ ͳ͍ࣄ͕ܾ·Γ·ͨ͠ɻ ܾผͷ࣌
Gitখ࢙ • ͔ͦ͜ΒͷLinusͷಈ͖ߴͰͨ͠ɻ • ͍͔ͭ͘طଘͷࢄཧγεςϜΛௐࠪ͠ɺ ͍ʹͳΒͳ͍ͱஅ • ϑϧεΫϥονͰॻ͖͢͜ͱʹܾఆ
Gitখ࢙ • 1Ͱಈ͘ͱ͜Ζ·Ͱ࡞Γɺ2Ͱgitʹର͠ ͯgitͦͷͷΛίʔυཧͤ͞Δ͜ͱʹޭ (self hosting) • 2िؒޙʹLinuxΧʔωϧΛ͜ΕͰཧ͠Α ͏ͱϝʔϦϯάϦετʹpost •
2िؒͰgit͕Ͱ͖ͨͱݴΘΕ͍ͯΔ
Gitখ࢙ $ git log e83c516 commit e83c5163316f89bfbde7d9ab23ca2e25604af290 Author: Linus Torvalds
<
[email protected]
> Date: Thu Apr 7 15:13:13 2005 -0700 Initial revision of "git", the information manager from hell
Gitখ࢙ • 4݄3͔Β։ൃΛ࢝Ίͯɺ4݄7ʹͳΜΒ ͔ͷͷ͕ಈ͍͍ͯͯɺ4݄16ʹlinux ΧʔωϧΛ֨ೲͰ͖Δ·ͰʹͳΔɻ͜Ε͕2ि ؒΒͣͰgitΛ࡞ͬͨͱݴΘΕΔΏ͑ΜͰ͋ Δɻ
Git খ
Gitখ • gitͷMLͰɺͳͥgitͰC++ΛΘͳ͍ͷ͔ͱ͍ ͏࣭ʹରͯ͠ɺLinusͷճ > > GitͷιʔείʔυΛ࢝ΊͯΈͨ࣌ɺ2ͭͷ͜ͱ͕಄ʹͻ͔͔ͬͬͨɻ > 1. C++͡Όͳͯ͘७ਮͳCɻཧ༝ෆ໌ɻҠ২ੑͱ͔ݴΘͳ͍ͰΑɻ
> Ϋιͩɻ Ϋι·ΈΕͳͷΦϝʔͷํͩɻ C++൵ࢂͳݴޠͩɻ͔͠ɺগͳ͔Β͵ͷϓϩάϥϚʔ͕͍ͬͯͯɺશແܽͷͲ͏͠Α͏ͳ͍Ϋι Λੜ͢Δͷ͕ΊͪΌΊͪΌ؆୯ʹͳ͍ͬͯΔͱ͍͏ͰɺΑ͚͍ʹ൵ࢂͩɻϚδͰɺCΛબ͢Δཧ༝͕ ʮԿͳ͔ͬͨʯͱͯͩ͠ɺC++ϓϩάϥϚʔආ͚ʹͳΔͱ͍͏͚ͩͰɺCΛ͏େ໊ٛʹͳΔɻ
Git Tipsू
Git Tips • ͕GitΛ͏্Ͱ͍ͬͯΔࣄΛڭ͑ͯݟ Λڞ༗͠·͢
Git Tips ͦͷ1: Tig
Git Tips ͦͷ1: Tig • gitΛ͍͘͢͢Δπʔϧ • ݸਓతʹ͜Ε͕ͳ͍ͱgit͑ͳ͍͍ͬͯ͏ Ґ͍͍͢ •
tig Ͱ add ͨ͠Γ tig ͰऔΓফͨ͠Γ͢ΔͷΛ Α͘Δ
DEMO
Git Tips ͦͷ2: git hook
Git Tips ͦͷ2: git hook • git Ͱίϛοτ࣌push࣌ʹίϚϯυΛ࣮ߦ ͢Δπʔϧ •
node.jsϓϩδΣΫτͰhusky͍ͬͯ͏πʔ ϧ͕͋ͬͯͦΕΛͬͯhookͤ͞Δ͜ͱ͕ଟ ͍
DEMO
Git Tips ͦͷ3: git diff algorithm
None
None
git diff --histogram ͋Δ
͜Μͳͱ͖Ͳ͏͢Δʁ Git͓ࠔΓ࣌ͷϔϧϓ
͏͔ͬΓؒҧͬͯadd/commit ͯ͠͠·ͬͨͷΛݩʹ͢
͏͔ͬΓؒҧͬͯadd/commit ͨ͠ͱ͖ # git reset Λ͍·͠ΐ͏ $ git reset --soft
HEAD^ // ҰݸલͷίϛοτΛऔফ͠ $ git reset --soft HEAD^^ // ೋݸલͷίϛοτΛऔΓফ͢ # ͪͳΈʹ tig ͰΔͱ add ͷ߹ͬͱ؆୯ $ tig status
͏͔ͬΓؒҧͬͯpushͯ͠͠ ·ͬͨͷΛݩʹ͢
͏͔ͬΓؒҧͬͯpushͨ͠ͱ͖ # ·ͣɺνʔϜ։ൃத master ͷpushۃྗආ͚Δ (Pull RequestϕʔεͰશһ͕ ࢹͰ͖ΔΑ͏ʹ͠ͳ͕Β։ൃ͢Δʣ # masterҎ֎ͷϒϥϯνʢࣗͷϒϥϯνͳΒpushͯ͠औΓฦ͕ͭ͘͠ʣ
# master ͷ߹ɺͦͷλΠϛϯάͰclone͞ΕͨΓpull͞ΕͨΓ͢Δͱඇৗʹ໘ͳ͜ͱʹ ͳΔ $ git rebase -i Ͱpushͯ͠͠·ͬͨίϛοτΛऔΓফ͢ $ ͜ͷ git rebase ͕ΊͬͪΌ͏ $ git rebase -i ͢ΔͱΤσΟλ͕։͘ͷͰɺͦͷΤσΟλ্Ͱ֘ίϛοτΛআ $ আͨ͠Β git push -f Ͱforce push $ master ͷ force push ݫېͳ͕࣌͋ΔͷͰඇৗʹؾΛ͚ͭΔ
͏͔ͬΓؒҧͬͯmaster mergeͯ͠͠·ͬͨͷΛݩ ʹ͢
͏͔ͬΓؒҧͬͯmaster merge ͨ͠ͱ͖ # جຊ revert ͢Δ # master ʹpush͞ΕͨͷΛ҆શʹऔΓফ͢ͷrevertͰΔͷ͕ྑ͍
# ͨͩ͠ɺrevert͢Δͱrevert commit(औΓফͨ͢Ίͷcommit͕ͭ͘) # git ͷຊདྷతͳ͍ํͱͯ͠revert͕ਖ਼͍͠ $ git revert HEAD~2 (ೋݸલͷίϛοτΛrevert)
ผͷϒϥϯν͔Βίϛοτ͠ ͯ͠·ͬͨͷͰऔΓࠐΈ͍ͨ
ผͷϒϥϯν͔Βίϛοτͯ͠ ͠·ͬͨͷͰऔΓࠐΈ͍ͨ # cherry pick # ίϛοτͨ͠ͷΛcherry-pickͯ͠ผϒϥϯνʹίϛοτͨ͜͠ͱʹ͢Δ $ git cherry-pick
<ίϛοτ൪߸> # pushͯ͠ͳ͚ΕҰ୴reset --soft ͯͦ͠ΕΛผϒϥϯνʹͯ͠push͢Δํ͕ଟ͍͔ɻ
ίϛοτͨ͋͠ͱͰtypo͕ ͋ͬͯtypoͨ͠Βtypo͕typo ͯͨ͠
ίϛοτͨ͋͠ͱͰtypo͕͋ͬͯ typoͨ͠Βtypo͕typoͯͨ͠ # git log fix: typo fix: typo feat:
Add new feature Έ͍ͨͳͱ͖ # git rebase -i HEAD~{3} ͔ͯ͠Β औΓࠐΈ͍ͨͭͱऔΓࠐΈͨ͘ͳ͍ͭΛ͚ͯϚʔδ͢Δ
ίϛοτͨ͋͠ͱͰtypo͕͋ͬͯ typoͨ͠Βtypo͕typoͯͨ͠ ίϛοτϝοηʔδΛ fixup ͱ͔ squash ʹ͓ͯ͘͠ͱ git rebase -i
--autosquash Ͱϋο ϐʔʹͳΔ git commit --fixup <COMMIT ID> Ͱྑ͍ ※ autosquashΛ͏࣌લͷίϛοτͷϝοηʔδͷઌ಄จࣈؚ͕·Ε͍ͯΔඞཁ͕ ͋Δɻ
Trial github.com/recruit-tech/git- bootcamp
passwordΛ͏͔ͬΓೖΕ ͪΌͬͨͷͰաڈͷίϛοτ ͔Βશͯআ͍ͨ͠
passwordΛ͏͔ͬΓೖΕͪΌͬͨͷ Ͱաڈͷίϛοτ͔Βશͯআ͍ͨ͠ # git filter-branch Λ͏ $ git filter-branch -f
--tree-filter 'rm -f password.txt' HEAD $ git push origin master --force
Trial github.com/recruit-tech/git- bootcamp
git commit Ͱͬͨemail/ nameΛม͍͑ͨ
passwordΛ͏͔ͬΓೖΕͪΌͬͨͷ Ͱաڈͷίϛοτ͔Βશͯআ͍ͨ͠ # git filter-branch ͷ commit-filter Λ͏ $ git
filter-branch -f --commit-filter 'if [ "$GIT_AUTHOR_EMAIL" = "
[email protected]
" ]; then GIT_AUTHOR_NAME="Yochan"; GIT_AUTHOR_EMAIL="
[email protected]
"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD
Trial github.com/recruit-tech/git- bootcamp
SVN͔ΒGitʹӡ༻ม͍͑ͨΜ ͚ͩͲɻ
SVN͔ΒGitʹӡ༻ม͍͑ͨΜ ͚ͩͲɻ • SVN => தԝूݖܕ • Git => ࢄܕ
• Ұ൪͍͍ͷGithub͕ࠓσϑΝΫτελϯμʔυͳͷ ͰɺͦΕҎ֎ͰΔͳΒ߱ΓΔͧͬͯڴͯ͠ՄɻͦΕ Ͱฆڄͨ͠ΒΛݺΜͰ͍ͩ͘͞ɻ • see: http://qiita.com/YusukeHosonuma/items/ 14c59f3878d640a401a1
GitFlow͕͍͍ͷʁ GitHubFlow͕͍͍ͷʁ http://qiita.com/mint__/ items/ bfc58589b5b1e0a1856a
GitFlow͕͍͍ͷʁGitHubFlow ͕͍͍ͷʁ • ͖ͳͷΛ͏ͱྑ͍ • ͷ͖ͳͷGithubFlowͷํɺmaster͕ ઈର҆ఆՔಇ͓͖ͤͯ͘͞ͱ͍͏ଋ͕क ΒΕ͍ͯΔͳΒͲͪΒͰՄೳ
RepositoryͲͷ୯ҐͰΘ͚Δ ͷ͕͍͍ͷʁ
جຊతʹRepositoryϓϩ δΣΫτͰҰ͕ͭྑ͍ • ϚΠΫϩαʔϏεͰϓϩδΣΫτ͚Δࣄ ଟ͍͕ɺϦϙδτϦ͕͔ΕΔ㲈։ൃऀؒʹ ύʔςΟγϣϯΛઃ͚Δʹ͍͠ • ϓϩδΣΫτΛࣦഊͤ͞Δํ๏ɿhttp:// yosuke-furukawa.hatenablog.com/entry/ 2016/12/31/225913
git reflog
git reflog ࠷ѱϩʔΧϧ͕ফ͑ͨΓϒϥϯν͕ফ͑ͨΓͨ࣌͠ͷ࠷ऴखஈ $ git reset --hard HEAD^^ # HEAD^ͱࢦఆ͢ΔͭΓ͕ؒҧ͑ͨ!
$ git reflog f5cb888 HEAD@{0}: head^^: updating HEAD 05b76fe HEAD@{1}: commit: 2.6.2 a546c2c HEAD@{2}: pull origin master: Fast-forward 843a591 HEAD@{3}: commit: rename package.json authors 6c66867 HEAD@{4}: pull origin master: Fast-forward 3e15c9e HEAD@{5}: checkout: moving from add_recruit_tech_problems to master 4af78a2 HEAD@{5}: commit: feat: add scope $ git reset --hard HEAD@{1} # reset hard લʹΕΔ
git bisect
git bisect Ͳ͔͜Β͔ɺੑೳ͕མͪͨɾςετ͕failʹͳͬͨͷ߹ͰͲ͜ͷίϛοτͰͦͷݱ͕ى ͖ͨͷ͔Λಛఆ͢ΔͨΊͷํ๏ɺೋ୳ࡧͰݕࡧͯ͘͠ΕΔ $ git bisect start HEAD v2.0
# v2.0Ͱେৎ͚ͩͬͨͲHEADͰ͕͋Δ $ git bisect run <ςετίϚϯυ> # ͜ΕͰࣗಈతʹςετ͠ͳ͕Βfail/successͰίϛοτΛݟ͚ͭͯ͘ΕΔ $ git bisect good $ git bisect bad # खಈͰςετ͢ΔͳΒ͜ͷΓํ͕͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠