Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Git Bootcamp
Search
Recruit Technologies
June 02, 2017
Technology
41k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Git Bootcamp
2017年4~5月開催「ブートキャンプ特別講座」の資料になります。
Recruit Technologies
June 02, 2017
More Decks by Recruit Technologies
See All by Recruit Technologies
障害はチャンスだ! 障害を前向きに捉える
rtechkouhou
1
800
Flutter移行の苦労と、乗り越えた先に得られたもの
rtechkouhou
3
12k
ここ数年間のタウンワークiOSアプリのエンジニアのチャレンジ
rtechkouhou
1
1.6k
大規模環境をAWS Transit Gatewayで設計/移行する前に考える3つのポイントと移行への挑戦
rtechkouhou
1
2k
【61期 新人BootCamp】TOC入門
rtechkouhou
3
43k
【RTC新人研修 】 TPS
rtechkouhou
1
42k
Android Boot Camp 2020
rtechkouhou
0
42k
HTML/CSS
rtechkouhou
10
52k
TypeScript Bootcamp 2020
rtechkouhou
9
46k
Other Decks in Technology
See All in Technology
Essential architectural thinking (revised edition)
ufried
0
110
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
230
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
540
Loop Engineering これくらいでいい
mikanichinose
0
210
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
310
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
330
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2.8k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
670
しろおびから始める!ログ活用の第一歩
shumei_ito
0
880
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
130
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.3k
Deep Data Security 機能解説
oracle4engineer
PRO
2
770
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Deep Space Network (abreviated)
tonyrice
0
360
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
260
Test your architecture with Archunit
thirion
2
2.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
790
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 # खಈͰςετ͢ΔͳΒ͜ͷΓํ͕͋Δ
͋Γ͕ͱ͏͍͟͝·ͨ͠