$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git Bootcamp
Search
Recruit Technologies
June 02, 2017
Technology
5
41k
Git Bootcamp
2017年4~5月開催「ブートキャンプ特別講座」の資料になります。
Recruit Technologies
June 02, 2017
Tweet
Share
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
730
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
12k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.6k
大規模環境を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
46k
Other Decks in Technology
See All in Technology
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
550
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
470
ディメンショナルモデリングを支えるData Vaultについて
10xinc
1
110
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
1.9k
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
280
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.5k
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
2.2k
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
630
5分で知るMicrosoft Ignite
taiponrock
PRO
0
390
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing for humans not robots
tammielis
254
26k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Unsuck your backbone
ammeep
671
58k
It's Worth the Effort
3n
187
29k
Thoughts on Productivity
jonyablonski
73
5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Speed Design
sergeychernyshev
33
1.4k
Code Reviewing Like a Champion
maltzj
527
40k
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 # खಈͰςετ͢ΔͳΒ͜ͷΓํ͕͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠