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
660
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
11k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.5k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
1.9k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
42k
【RTC新人研修 】 TPS
rtechkouhou
1
41k
Android Boot Camp 2020
rtechkouhou
0
41k
HTML/CSS
rtechkouhou
10
51k
TypeScript Bootcamp 2020
rtechkouhou
9
45k
Other Decks in Technology
See All in Technology
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
770
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
1k
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
5.1k
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
[2025-02-07]生成AIで変える問い合わせの未来 〜チームグローバル化の香りを添えて〜
tosite
1
290
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
1
110
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
370
生成AIの利活用を加速させるための取り組み「prAIrie-dog」/ Shibuya_AI_1
visional_engineering_and_design
1
140
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
890
Platform Engineeringは自由のめまい
nwiizo
4
1.9k
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
67
4.6k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Agile that works and the tools we love
rasmusluckow
328
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
A Philosophy of Restraint
colly
203
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Producing Creativity
orderedlist
PRO
343
39k
4 Signs Your Business is Dying
shpigford
182
22k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Fireside Chat
paigeccino
34
3.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
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 # खಈͰςετ͢ΔͳΒ͜ͷΓํ͕͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠