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
730
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
12k
ここ数年間のタウンワーク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
46k
Other Decks in Technology
See All in Technology
Bedrock のコスト監視設計
fohte
2
180
AIを前提に、業務を”再構築”せよ IVRyの9ヶ月にわたる挑戦と未来の働き方 (BTCONJP2025)
yueda256
1
790
未回答質問の回答一覧 / 開発をリードする品質保証 QAエンジニアと開発者の未来を考える-Findy Online Conference -
findy_eventslides
0
280
LINEスキマニ/LINEバイトにおけるバックエンド開発
lycorptech_jp
PRO
0
320
社内外から"使ってもらえる"データ基盤を支えるアーキテクチャの秘訣/登壇資料(飯塚 大地・高橋 一貴)
hacobu
PRO
0
890
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
810
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
110
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
7
520
マルチドライブアーキテクチャ: 複数の駆動力でプロダクトを前進させる
knih
0
3.5k
[CV勉強会@関東 ICCV2025] WoTE: End-to-End Driving with Online Trajectory Evaluation via BEV World Model
shinkyoto
0
280
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
140
レガシーで硬直したテーブル設計から変更容易で柔軟なテーブル設計にする
red_frasco
2
210
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Designing Experiences People Love
moore
142
24k
Facilitating Awesome Meetings
lara
57
6.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
56k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
How GitHub (no longer) Works
holman
315
140k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
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 # खಈͰςετ͢ΔͳΒ͜ͷΓํ͕͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠