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/Github_勉強スライドまとめ
Search
Tekoneko
May 24, 2019
Programming
0
140
Git/Github_勉強スライドまとめ
超入門、入門、タスク管理、実践、UIの5つのスライドをまとめました。
Tekoneko
May 24, 2019
Tweet
Share
More Decks by Tekoneko
See All by Tekoneko
Git,GitHubについて_2020ver
tekoneko
0
46
Other Decks in Programming
See All in Programming
AgentCoreとHuman in the Loop
har1101
5
230
CSC307 Lecture 06
javiergs
PRO
0
680
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
Fragmented Architectures
denyspoltorak
0
150
CSC307 Lecture 01
javiergs
PRO
0
690
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
AI巻き込み型コードレビューのススメ
nealle
1
240
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
700
Grafana:建立系統全知視角的捷徑
blueswen
0
330
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.1k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Done Done
chrislema
186
16k
The Cult of Friendly URLs
andyhume
79
6.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
340
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
320
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Transcript
と ೖ ന഼ 㑏 May 00, 2019 Twitter: @y123shi
ࠓͷඪ 1
͕Կऀͳͷ͔ཧղ と 2
εϥΠυͷΩʔϫʔυ όʔδϣϯཧ όʔδϣϯཧγεςϜ ϩʔΧϧόʔδϣϯཧγεςϜ ूதܕόʔδϣϯཧγεςϜ
ࢄܕόʔδϣϯཧγεςϜ 3
ͬͯԿʁ 4
ࢄܕόʔδϣϯཧγεςϜ Business photo created by natanaelginting - www.freepik.com 5
ͳʹͦΕ͓͍͍͠ͷʁ 6
·ͣɺόʔδϣϯཧγεςϜ VCS 7
ところで みなさんバージョン管理してますか︖ ͱ͜ΖͰɺ όʔδϣϯཧͯ͠·͔͢ʁ Photo by Emily Morter on
Unsplash 8
όʔδϣϯཧ 9
όʔδϣϯཧ ͲΕ͕࠷৽όʔδϣϯ͔Θ͔Βͳ͍ 10
ローカル・バージョン管理システム 11
ローカル・バージョン管理システム Version Database Version 3 Version 1 Version 2 File
Local Computer 12
u ̍ͭͷϑΝΠϧͰόʔδϣϯཧͰ͖Δ u ؒҧ͑ͯલͷόʔδϣϯʹͤΔ u มߋཤྺΛ֬ೝͰ͖Δ ϝϦοτ 13 ϩʔΧϧɾόʔδϣϯཧγεςϜ
ϩʔΧϧɾόʔδϣϯཧγεςϜ u ̍ͭͷϑΝΠϧͰόʔδϣϯཧͰ͖Δ u ؒҧ͑ͯલͷόʔδϣϯʹͤΔ u มߋཤྺΛ֬ೝͰ͖Δ ϝϦοτ u ଞͷ։ൃऀͱڞಉ࡞ۀ͕ͮ͠Β͍
Ͱ͖ͳ͍ σϝϦοτ 14
Computer A Version Database Version 3 Version 1 Version 2
Computer B Central VCS Server 集中型バージョン管理システム 15
u ڞಉ࡞ۀ͕͘͢͠ͳΔ u ଞͷਓ͕ԿΛ͍ͯ͠Δͷ͔͋ΔఔΘ͔Δ u ϩʔΧϧόʔδϣϯཧγεςϜͷ ϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ 16 ूதܕόʔδϣϯཧγεςϜ
ूதܕόʔδϣϯཧγεςϜ u ڞಉ࡞ۀ͕͘͢͠ͳΔ u ଞͷਓ͕ԿΛ͍ͯ͠Δͷ͔͋ΔఔΘ͔Δ u ϩʔΧϧόʔδϣϯཧγεςϜͷ ϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ u
αʔόʔ͕ࢭ·ͬͯ͠·͏ͱڞಉ࡞ۀ όʔδϣϯཧͰ͖·ͤΜ ୯Ұো u σʔλϕʔεͷόοΫΞοϓΛऔΒͳ͚ΕͳΒͳ͍ σϝϦοτ 17
分散型バージョン管理システム(Git) Version Database Version 3 Version 1 Version 2 Computer
B Version Database Version 3 Version 1 Version 2 Computer A Version Database Version 3 Version 1 Version 2 Server Computer 18
u ϦϙδτϦΛڞ༗͢Δ͜ͱ͕Ͱ͖Δ u αʔόʔ͕ނোͯ͠ϦϙδτϦΛम෮Ͱ͖Δ u มߋͨ͠ϑΝΠϧͷࠩΛهͰ͖Δ u ूதܕͷϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ 19
ࢄܕόʔδϣϯཧγεςϜ
ࢄܕόʔδϣϯཧγεςϜ u ϦϙδτϦΛڞ༗͢Δ͜ͱ͕Ͱ͖Δ u αʔόʔ͕ނোͯ͠ϦϙδτϦΛम෮Ͱ͖Δ u มߋͨ͠ϑΝΠϧͷࠩΛهͰ͖Δ u ूதܕͷϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ
u ֶशίετ͕গ͠ߴ͍ σϝϦοτ ڧ͍ͯݴ͏ͳΒ 20
(JUͷ·ͱΊ u ཧ͍ͯ͠ΔϑΥϧμʹ࠷৽ͷঢ়ଶͷϑΝΠϧ͚͕ͩΔ u มߋཤྺΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ u ࠩΛอଘͰ͖Δ u ΦϑϥΠϯͰ࡞ۀͰ͖Δ u
ιʔγϟϧίʔσΟϯάͰ͖Δ u ࣮΄͔ͷόʔδϣϯཧγεςϜΑΓ؆୯ 21
ͬͯԿʁ 22
ࢄܕόʔδϣϯཧγεςϜ ϦϙδτϦΛཧ͍ͯ͠Δ Server͕GitHubͰ͢ 23
と ೖ
と ೖ ന഼ 㑏 May 00, 2019 Twitter: @y123shi
Gitػೳ ฤ l ϦϙδτϦ l ίϛοτ l ϓογϡ l ϓϧ
l ϒϥϯν l Ϛʔδ l ίϯϑϦΫτ 26
3FQPTJUPSZ 27
Java script มߋͨ͠ σʔλͷࠩ ϩʔΧϧɾϦϙδτϦ l ϦϙδτϦ ཧ͍ͨ͠σʔλͷมߋཤྺΛه͢Δ͜ͱ͕Ͱ͖Δ 28
l ϦϙδτϦ ཧ͍ͨ͠σʔλͷมߋཤྺΛه͢Δ͜ͱ͕Ͱ͖Δ ϩʔΧϧɾϦϙδτϦ Java script มߋͨ͠σʔλ ͷࠩΛอଘ DPNNJU 29
l ϩʔΧϧɾϦϙδτϦ ͕ࣗ࡞ۀΛߦ͏ͨΊʹ༻͢Δ ࣗͷϩʔΧϧ্ʹஔ͞ΕΔϦϙδτϦ l ϦϞʔτɾϦϙδτϦ ઐ༻ͷαʔό GitHub ͰཧɺෳਓͰ ڞ༗͢Δ͜ͱ͕Ͱ͖ΔϦϙδτϦ
ϩʔΧϧɾϦϙδτϦ A ϩʔΧϧɾϦϙδτϦ B มߋΛه push มߋΛऔΓࠐΈ pull ϦϞʔτɾϦϙδτϦ 30
$PNNJU 31
ϩʔΧϧɾϦϙδτϦ Java script มߋͨ͠σʔλ ͷࠩΛอଘ DPNNJU l $PNNJU ϑΝΠϧͷՃɾมߋΛϦϙδτϦʹه͢Δ͜ͱ 32
C D B A ίϛοτ ίϛοτ ίϛοτ Commit 変更したファイルの差分 ৽͘͠Ճͨ͠
ϑΝΠϧ मਖ਼ͨࠩ͠ मਖ਼ͨࠩ͠ ϦϙδτϦͰɺաڈͷίϛοτ ͔Βݱࡏͷঢ়ଶ·ͰͷࠩΛه ϦϙδτϦ 33
l ίϛοτϝοηʔδ ϦϙδτϦʹه͢ΔࡍʹԿΛมߋͨ͠ͷ͔ Θ͔ΔΑ͏ʹϝοηʔδΛ͠·͢ ྫʣ<feat>TodoػೳͷՃ <feat>ɿ feature ৽͍͠ػೳͷՃ <fix>ɿbugͷमਖ਼ <docs>ɿdocumentͷΈͷՃ
<style>ɿࡉ͔͍ͱ͜ ۭനͷআ ϑΥʔϚοτͳͲ <refactor>ɿϓϩάϥϜͷಈ͖Λม͑ͳ͍ͰιʔείʔυΛมߋ ͢Δͱ͖ɺϥΠϒϥϦͷΞοϓσʔτͰͬͨΓ͢Δ <pref>ύϑΥʔϚϯεΛ্͛ΔίϛοτͳͲ <test>ɿςετͷՃςετͷमਖ਼ͳͲ <chore>ͦͷଞ 34
1VTI 35
l Push ϩʔΧϧɾϦϙδτϦͷมߋهΛ ϦϞʔτɾϦϙδτϦʹΞοϓϩʔυ͢Δ͜ͱ ϩʔΧϧɾϦϙδτϦ A ϩʔΧϧɾϦϙδτϦ B มߋΛه push
มߋΛऔΓࠐΈ pull ϦϞʔτɾϦϙδτϦ 36
ϩʔΧϧɾϦϙδτϦ A ϩʔΧϧɾϦϙδτϦ B มߋΛه push มߋΛऔΓࠐΈ pull ϦϞʔτɾϦϙδτϦ l
Push ϩʔΧϧɾϦϙδτϦͷมߋهΛ ϦϞʔτɾϦϙδτϦʹΞοϓϩʔυ͢Δ͜ͱ શମʹڞ༗Ͱ͖ΔΑ͏ʹͳΔ 37
1VMM 38
39 ϩʔΧϧɾϦϙδτϦ A ϩʔΧϧɾϦϙδτϦ B มߋΛه push มߋΛऔΓࠐΈ pull ϦϞʔτɾϦϙδτϦ
l Pull ϦϞʔτɾϦϙδτϦͷมߋهΛ ϩʔΧϧɾϦϙδτϦʹμϯϩʔυ͢Δ͜ͱ
ϩʔΧϧɾϦϙδτϦ A ϩʔΧϧɾϦϙδτϦ B มߋΛه push มߋΛऔΓࠐΈ pull ϦϞʔτɾϦϙδτϦ l
Pull ϦϞʔτɾϦϙδτϦͷมߋهΛ ϩʔΧϧɾϦϙδτϦʹμϯϩʔυ͢Δ͜ͱ ϦϙδτϦৗʹ࠷৽ͷঢ়ଶ Ͱ͋Δ͜ͱ͕·͍͠ 40
#SBODI 41
l Branch ཤྺͷྲྀΕΛذͯ͠هͰ͖Δɻ ذͨ͠#SBODIଞͷ#SBODIͷӨڹΛड͚ͳ͍ C D B A E F
G H ϦϙδτϦ ϦϦʔε༻ Branch ػೳՃ༻ Branch όάमਖ਼༻ Branch 42
l νΣοΫΞτ master branch͔Βdevelop branchʹ ࢀরΛมߋ͢Δ C D B A
G H ϦϙδτϦ master develop νΣοΫΞτ 43
.FSHF 44
develop branchͰՃͨ͠ػೳΛ master branchʹՃ͍͑ͨ C D B A G H
ϦϙδτϦ master develop 45
C D B A ϦϙδτϦ master develop l merge develop
branchͰίϛοτͨࠩ͠Λ master branchʹऔΓࠐΉ G H merge 46
$POGMJDU 47
C D B A ϦϙδτϦ master develop G H merge
conflict l conflict ಉ͡ϑΝΠϧΛผʑͷϒϥϯνͰมߋͯ͠ Ϛʔδͨ͠ࡍʹى͖ͯ͠·͏͜ͱ 48
C D B A ϦϙδτϦ master develop G H merge
conflict جຊతʹͲͪΒ͔ͷมߋΛऔΓࠐΉ͔ ฤूͯ͠ͲͪΒͷมߋऔΓࠐΊΔΑ͏ʹ͠·͢ 49
·ͱΊ l ϦϙδτϦ l ίϛοτ l ϓογϡ l ϓϧ l
ϒϥϯν l Ϛʔδ l ίϯϑϦΫτ 50
λεΫཧ ⽩幡 祐叶 May 24, 2019 Twitter: @y123shi Projects
λεΫཧ ฤ l GitHub l Issue l Pull request l
Branch model l Projects l ZenHub l Azure DevOps
*TTVF
Issuesͱ IssuesͰͦͷϓϩδΣΫτʹ͓͚Δ Issue ΛՃͰ͖Δ ػೳՃɺλεΫɺBugใࠂͳͲɺ ϓϩδΣΫτʹΑΔ༷ʑͳΛՃ͠·͢
issueͷྫ
ࡉ͔͘հ͖ͯ͠·͢
細かく紹介してきます 1. タイトルではタイトルをみて内容がわかるような ものにしましょう 2. Issueのタイトルでは #1などそのissue 固有のissue番号が割り当てられます
ࡉ͔͘հ͖ͯ͠·͢ Issueͷ࣮ࡍͷத։ൃऀʹ ΘΔ༰Ͱͳ͚ΕͳΓ·ͤΜ
͍͔ͭ͘issueςϯϓϨʔτͷྫΛհ Feature request l ֓ཁ l త l ఏҊ༰ l
λεΫ Bug report l ֓ཁ l ࠶ݱखॱ l ݪҼ l λεΫ
IssueͷςϯϓϨʔτGitHubͰ࡞ GitHubϦϙδτϦͷઃఆ͔ΒςϯϓϨʔτΛ࡞Ͱ͖·͢
Issueの設定 Λղܾ͢ΔͨΊʹඞཁͳ ϝϯόʔΛΞαΠϯ͠·͢ Labelͦͷissueͷλά͚ʹߦ͍·͢ labelࣗͰฤूͰ͖ΔͷͰͦͷϓϩδΣΫτʹ͋͏ LabelΛઃఆ͠·͠Α͏ ProjectޙͰઆ໌͠·͕͢ɺ ͜͜ͰissueΛprojectʹొ͢Δ͜ͱ͕Ͱ͖·͢ ͦͷ໊ͷ௨ΓϚΠϧετʔϯΛઃఆͰ͖·͢ɻ εϓϦϯτظؒͳͲΛઃఆ͢Δͱྑ͖Ͱ͢
ࣗͷλεΫʹඞཁͳissueඞཁͳ͍issue௨ͷ on/off͕Ͱ͖·͢
最後に⼤事なこと ̍ͭͷJTTVFͰ ̍ͭͷػೳɺBugΛపఈ͠·͠ΐ͏
1VMMSFRVFTU
Pull requestとは มߋ༰Λଞͷ։ൃऀʹΒͤΔ͜ͱ͕Ͱ͖·͢ɻ มߋ༰͕ϕʔεϒϥϯνʹϚʔδ͞ΕΔલʹڞಉ࡞ۀऀͱ มߋ༰ʹ͍ͭͯ͠߹͍ݕ౼͢Δ͜ͱ͕Ͱ͖·͢ɻ
1VMMSFRVFTUͷྫ
Pull requestとは *TTVF൪߸ͱQVMMSFRVFTUͷ൪߸ڞ༗ͳͷͰࣈ͕ ॏͳΔ͜ͱ͋Γ·ͤΜɻ *TTVFͰQVMMSFRVFTUͰઆ໌ͷதʹ l00zΛೖΕΔͱ ͦͷ൪߸ͱҰக͢ΔϖʔδʹͱͿ͜ͱ͕Ͱ͖·͢ɻ
Pull requestͱ Close #OO ͱΔ͜ͱͰpull request͞Εͨϒϥϯν͕ Ϛʔδ͞ΕͨࡍʹࣗಈͰissue͕close͞Ε·͢
͍͔ͭ͘Pull requestςϯϓϨʔτͷྫΛհ Feature/Bug request l ֓ཁ l มߋ༰ l ಈ࡞ཁ݅
ඞཁͳΒ l ิ
Pull requestͷઃఆ Λղܾ͢ΔͨΊʹඞཁͳ ϨϏϡϫʔΛΞαΠϯ͠·͢ Labelͦͷissueͷλά͚ʹߦ͍·͢ label ࣗͰฤूͰ͖ΔͷͰͦͷϓϩδΣΫτʹ͋͏ LabelΛઃఆ͠·͠Α͏ ProjectޙͰઆ໌͠·͕͢ɺ ͜͜ͰissueΛprojectʹొ͢Δ͜ͱ͕Ͱ͖·͢
ͦͷ໊ͷ௨ΓϚΠϧετʔϯΛઃఆͰ͖·͢ɻ εϓϦϯτظؒͳͲΛઃఆ͢Δͱྑ͖Ͱ͢ ࣗͷλεΫʹඞཁͳissueඞཁͳ͍issue௨ͷ on/off͕Ͱ͖·͢ pull requestΛͨ͠ਓΞαΠϯ͞ΕͨਓΛઃఆ
࠷ޙʹେࣄͳ͜ͱ ̍ͭͷ1VMM SFRVFTUͰ ̍ͭͷJTTVFΛղܾ͠·͠ΐ͏
#SBODINPEFM
Branch model ͱ ϒϥϯνϞσϧͱϒϥϯνΛͲͷΑ͏ʹͬͯ ӡ༻͢Δ͔Λ·ͱΊͨͷ
ϝδϟʔͳBranch model git-flow Ϟσϧ GitHub Flow Ϟσϧ
git-flow Ϟσϧ masterϒϥϯν ϦϦʔεՄೳͳશ࣭Λอূ͢Δϒϥϯν developϒϥϯν ։ൃͷओ࣠ʹͳΔϒϥϯν releaseϒϥϯν ϦϦʔε࡞ۀΛߦ͏ͨΊͷϒϥϯν featureϒϥϯν ػೳՃ͓Αͼमਖ਼࡞ۀΛߦ͏ͨΊͷϒϥϯν
hotfixϒϥϯν ϦϦʔεࡁΈͷͷͷۓٸमਖ਼༻ͷ࡞ۀΛߦ͏ϒϥϯν supportϒϥϯν چόʔδϣϯΛαϙʔτ͢ΔͨΊͷϒϥϯνɻ
masterϒϥϯν ϦϦʔεՄೳͳશ࣭Λอূ͢Δϒϥϯν topicϒϥϯν ػೳՃόάमਖ਼Λߦ͏ϒϥϯν GitHub Flow Ϟσϧ
͋͘·Ͱ༗໊ͳϞσϧͳͷͰ ࣗͨͪͷ͋ͬͨCSBODI NPEFMΛܾΊ·͠ΐ͏
1SPKFDUT
λεΫ൘ (JU)VCͰ1SPKFDUCPBSET ʹΑͬͯ λεΫ JTTVF ͷঢ়ଶΛཧ͢Δ͜ͱ͕Ͱ͖·͢ (JU)VC1SPKFDUTͱ
l νʔϜશମͷλεΫΛݟ͑ΔԽ͢Δ͜ͱ͕Մೳ l λεΫͷཧ͕͍͢͠ l νʔϜʹ͔͋ͬͨΜΜΛ࡞Ͱ͖Δ l 1VMMSFRVFTU *TTVFͷঢ়ଶͰΧϥϜ͕ࣗಈతʹҠಈ (JU)VC1SPKFDUTԿ͕͓͍͍͠ͷʁ
(JU)VC1SPKFDUTͷ͍ํ
࣮ࡍͷݟͨ͜Μͳײ͡
͔ΜΜͳʹ͕͍͍ͷʁ l νʔϜશମͷλεΫΛݟ͑ΔԽ͢Δ͜ͱ͕Մೳ l λεΫͷཧ͕͍͢͠ l νʔϜϝϯόʔ͕ߦͳ͍ͬͯΔλεΫͷঢ়ଶ͕Θ͔Δ
どういうかんばんがあるの︖ ྫ̍ʣ̏ͭͷ൘ͰλεΫͷঢ়ଶΛཧ TODO ɿ औΓֻ͔͍ͬͯͳ͍λεΫ Doing ɿ ݱࡏऔΓֻ͔͍ͬͯΔλεΫ Done
ྃͨ͠λεΫ
Ͳ͏͍͏͔ΜΜ͕͋Δͷʁ ྫʣFintechͷྫ TODO ɿ Readyঢ়ଶʹͳ͍ͬͯͳ͍λεΫ Ready ɿ Readyঢ়ଶͷλεΫ In Progress
ݱࡏऔΓֻ͔͍ͬͯΔλεΫ Approve ϚʔδͷڐՄͪλεΫ S0 Done εϓϦϯτ͝ͱͷ Done͔ΜΜ
GitHub Projectsͷଞͷػೳ ◉ ͔ΜΜʹΧʔυΛՃ͢ΔͱIssuesͱ࿈ܞͯ͠ IssueΛՃͰ͖·͢ ◉ Pull requestMergeΛߦ͏ͱ͔ΜΜͱ࿈ܞͯ͠ ࣗಈతʹҠಈ͠·͢
(JU)VC1SPKFDUTҎ֎ʹ͑ͦ͏ͳ αʔϏεΛհ͠·͢ おまけ
;FO)VC
ZenHubͱ (JU)VC 1SPKFDUTͷػೳΛ ΑΓ"HJMF։ൃʹಛԽͤͨ͞αʔϏε ݫີʹҧ͏
実際にどんな機能があるのか ◉ Board (JU)VC1SPKFDUTͱಉ͡Α͏ͳ͔ΜΜ CPBSE ◉ Milestones εΫϥϜͰ͍͏εϓϦϯτͷΑ͏ͳ͍ํͰ͖·͢ ◉ Reports
◉ Burndown charts όʔϯμϯνϟʔτ͕ΈΕ·͢ ◉ Velocity tracking ϕϩγςΟͷཤྺΛάϥϑͰݟΔ͜ͱ͕Ͱ͖·͢
Board
Milestone
Burndown charts
Velocity tracking
"[VSF%FW0QT
Azure Devopsͱ %FW0QTͱݺΕΔ ֓೦ ։ൃͷऔΓΈํ ʹಛԽͨ͠αʔϏε
Azure Devopsͱ ։ൃख๏πʔϧΛͬͯ ։ൃऀ %FWFMPQNFOU ͱ ӡ༻ऀ 0QFSBUJPOT ͕ີʹ࿈ܞ͢Δ͜ͱͰɺ ΑΓॊೈ͔ͭεϐʔσΟʔʹ
γεςϜΛ։ൃ͢Δ͜ͱ
Azure Devopsͱ ։ൃख๏πʔϧΛͬͯ ։ൃऀ %FWFMPQNFOU ͱ ӡ༻ऀ 0QFSBUJPOT ͕ີʹ࿈ܞ͢Δ͜ͱͰɺ ΑΓॊೈ͔ͭεϐʔσΟʔʹ
γεςϜΛ։ൃ͢Δ͜ͱ Azure DevopsͰDevOpsΛ ࣮ݱͤ͞ΔͨΊͷػೳΛఏڙ͍ͯ͠Δ
Azure Devopsͷػೳ ◉ Azure Boards (JU)VC1SPKFDUTͱಉ͡Α͏ͳ͔ΜΜ CPBSE ◉ Azure Pipelines
εΫϥϜͰ͍͏εϓϦϯτͷΑ͏ͳ͍ํͰ͖·͢ ◉ Azure Repos GitHubのリポジトリと同じ機能 ◉ Azure Test Plans ◉ Azure Artifacts
Azure Boards
Congratulations! ͜ΕͰࠓճͷGit/Github λεΫཧฤྃͰ͢ ͓ർΕ༷Ͱͨ͠
·ͱΊ l GitHub l Issue l Pull request l Branch
model l Projects l ZenHub l Azure DevOps
と ࣮ફ ന഼ 㑏 May 00, 2019 Twitter: @y123shi
࣮ફ ฤ l commit͢Δ l commitͨ͠هΛpush l branchΛ࡞ͬͯcheckout l conflictΛىͯ͜͠ΈΑ͏
l pullͯ͠conflictΛղফ͢Δ
४උ͢Δͷ l Terminal or Git Bash l VS code (editorはなんでもいい)
࢝ΊΔલʹ֬ೝ Git のグローバル設定はしましたか︖
࢝ΊΔલʹ֬ೝ Git のグローバル設定はしましたか︖ $ git config --global user.name "My Name"
$ git config --global user.email
[email protected]
࢝ΊΔલʹ֬ೝ GitͰ༻͢ΔσϑΥϧτͷeditorΛ ઃఆͯ͠ͳ͍߹ઃఆ͠·͠Α͏ $ git config --global -l $ git
config --global core.editor vim ˣDPSFFEJUPS͕ઃఆ͞Ε͍ͯΔ͔֬ೝ͠·͠ΐ͏ ˣDPSFFEJUPS͕ઃఆ͞Ε͍ͯͳ͚Εઃఆ͠·͠ΐ͏ ࠓճWJN
࡞ۀ։࢝
Ͳ͜Ͱ͍͍ͷͰzgit_testzͱ͍͏໊લͷ σΟϨΫτϦ ϑΥϧμ Λ࡞͍ͯͩ͘͠͞ README.mdΛ࡞͠Α͏
ファイルを作ろう README.mdΛ࡞͠Α͏
͜Μͳײ͡Ͱదʹॻ͍ͯΈ͍ͯͩ͘͞ README.mdΛ࡞͠Α͏
README.mdΛ࡞͠Α͏ zgit_testzʹϑΝΠϧΛอଘ͍ͯͩ͘͠͞
GitͷઃఆΛߦ͍·͢ Terminal or Git Bush Λ։͍ͯ lgit_testzͬͯ ໊લͷσΟϨΫτϦ ϑΥϧμ ʹೖΔ
$ git init ͯ͠Έ͍ͯͩ͘͞
͍·Կͳ͍ۭͬΆͷঢ়ଶ ローカル・ リポジトリ master HEAD GitͷઃఆΛߦ͍·͢ HEADࠓ͕ࣗͲͷঢ়ଶʹ͍Δ͔Λࢦ͍ͯ͠·͢ master$git init Λߦ͏ͱ࠷ॳʹͰ͖Δϒϥϯν
͜ͷNBTUFS͔Β࡞ۀΛߦ͏ͨΊͷbranchΛ࡞ ͢ΔͷͰBase branchͱݴΘΕͯ·͢ɻ
GitͷઃఆΛߦ͍·͢ ͪΌΜͱઃఆ͞Ε͍ͯΔ͔֬ೝ͢ΔͨΊʹ $ git status ͯ͠Έ͍ͯͩ͘͞ ͜ͷίϚϯυͰݱࡏͷঢ়ଶΛݟΕ·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ ͪΌΜͱઃఆ͞Ε͍ͯΔ͔֬ೝ͢ΔͨΊʹ ͜͏ͳͬͨΒޭ
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ Commit͢ΔͨΊʹ $ git add README.md addcommit͢ΔϑΝΠϧΛબͿͨΊʹ͍·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ addͰ͖Δͱ৭ʹͳΓ·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ git commitとやるとVimの画⾯になります ೖྗͨ͠ΒzesczΩʔΛԡͯ͠l:wqzΛೖྗzEnterz
git statusͰίϛοτͰ͖͔ͨ֬ೝ ͜Μͳײ͡ʹͳͬͨΒ͓k ϑΝΠϧΛίϛοτͯ͠ΈΑ͏
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ A ϩʔΧϧɾ ϦϙδτϦ master ˢࠓߦͬͨίϛοτ HEAD
ϑΝΠϧΛϓογϡͯ͠ΈΑ͏ ͦͷલʹɺ ϓογϡ͢ΔલʹpushઌͷϦϞʔτϦϙδτϦΛ४උ͠Α͏
GitHubʹϦϙδτϦΛ࡞͠Α͏ New ΛΫϦοΫ͠·͢
New ΛΫϦοΫ͠·͢ ここ GitHubʹϦϙδτϦΛ࡞͠Α͏
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ 名前を決めたら“Create repository” リポジトリの名前を決めます
GitHubʹϦϙδτϦΛ࡞͠Α͏ ͜Μͳը໘ʹͳͬͨΒ࡞ྃͰ͢
ϑΝΠϧΛpushͯ͠ΈΑ͏ ϦϞʔτɾϦϙδτϦ origin/ master ίϛοτ͕ͳʹͳ͍ঢ়گ
GitHubʹϦϙδτϦΛ࡞͠Α͏ ͜Μͳը໘ʹͳͬͨΒ࡞ྃͰ͢ ϦϙδτϦͷϦϯΫΛίϐʔ͍ͯͩ͘͠͞
$ git remote add origin zίϐʔͨ͠URLz GitHubʹϦϙδτϦΛpush͠Α͏
$ git push ͢Δͱ͜Μͳද͕ࣔͰΔ GitHubʹϦϙδτϦΛpush͠Α͏
GitHubʹϦϙδτϦΛpush͠Α͏ $ git push --set-upstream origin master
GitHubʹϦϙδτϦΛ֬ೝͯ͠ΈΑ͏
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ A ϦϞʔτɾϦϙδτϦ origin/master ˢࠓߦͬͨίϛοτ
GitͰbranchΛͬͯΈΑ͏ $ git branch lϒϥϯν໊z BranchΛ࡞ $ git checkout lϒϥϯν໊z
࡞ͨ͠BranchʹҠಈ
A master hoge ϩʔΧϧɾ ϦϙδτϦ HEAD ϒϥϯνΛͬͯ GitͰbranchΛͬͯΈΑ͏ ࠓͷঢ়ଶ :
$ git checkout hoge
ࠓͷঢ়ଶ : $ git checkout hoge A master hoge ϩʔΧϧɾ
ϦϙδτϦ GitͰbranchΛͬͯΈΑ͏ HEAD hogeʹҠಈͨ͠ HEAD
ผCSBODIͰίϛοτ͠Α͏ ͖ͬͬͨ͞Έ͍ͨʹREADME.mdΛฤूͯ͠ίϛοτ͠Α͏
A master hoge ϩʔΧϧɾ ϦϙδτϦ ผϒϥϯνͰίϛοτ͠Α͏ HEAD hogeϒϥϯνͰίϛοτ B
merge͠Α͏ ϚελʔʹҠಈ͠·͢ $ git checkout master ࡞ͨ͠ϒϥϯνͷมߋΛϚελʔʹऔΓࠐΈ·͢ $ git merge
l࡞ͨ͠ϒϥϯνz
A master hoge ϩʔΧϧɾ ϦϙδτϦ merge͠Α͏ HEAD ·ͣmasterʹҠಈ B HEAD
ࠓͷঢ়ଶ masterͷ࠷৽ίϛοτ͕ hogeͷίϛοτʹͳΓ·ͨ͠ A master hoge ϩʔΧϧɾ ϦϙδτϦ merge͠Α͏ HEAD
master͕ͨͩhogeͷίϛοτ ʹҠಈ͚ͨͩ͠ͷ͜ͷঢ়ଶΛ 'BTU'PSXBSE ͱݴ͍·͢ B
master͕มΘͬͨͷͰpush ઌʹɺpush ઌͷϦϞʔτϒϥϯνΛઃఆͨ͠ͷͰࠓճ $ git push ͰɺϦϞʔτϦϙδτϦʹΞοϓϩʔυͰ͖·͢
ࠓͷঢ়ଶ masterͷ࠷৽ίϛοτ͕ ϦϞʔτͷϚελʔʹpush͞Εͨ A origin/master ϦϞʔτɾ ϦϙδτϦ merge͠Α͏ B
มߋ͞ΕͨͷΛ֬ೝ
GitHub上ͰbranchΛ࡞ͯ͠ΈΑ͏ ←ここをクリック
GitHub上ͰbranchΛ࡞ͯ͠ΈΑ͏ ৽͘͠࡞Δϒϥϯν໊Λೖྗͯ͠ lCreate branchzΛΫϦοΫ
ࠓͷঢ়ଶ ϦϞʔτϒϥϯνͰbranchΛ࡞ A origin/master ϦϞʔτɾ ϦϙδτϦ merge͠Α͏ B origin/hoge2
Pull͠Α͏
ͦͷલʹɺpullʹ͍ͭͯղઆ
PullϦϙδτϦͷσʔλΛμϯϩʔυͯ͠·͕͢ɺ ݫີʹ̎ͭͷίϚϯυΛ༻ͯͦ͠ΕΛՄೳʹ͍ͯ͠·͢ Pullʹ͍ͭͯղઆ
Pullʹ͍ͭͯղઆ PullϦϙδτϦͷσʔλΛμϯϩʔυͯ͠·͕͢ɺ ݫີʹ̎ͭͷίϚϯυΛ༻ͯͦ͠ΕΛՄೳʹ͍ͯ͠·͢ $git fetch & $git merge
$git fetch ϦϞʔτɾϦϙδτϦ͔Β࠷৽ͷใΛ ϩʔΧϧɾϦϙδτϦʹ࣋ͬͯ͘ΔίϚϯυͰ͢ pullͷΑ͏ʹfileߋ৽͞Ε·ͤΜ $git merge mergeΛ͢Δ͜ͱͰϦϞʔτɾϦϙδτϦ͔Β ࠷৽ͷใΛॴಘͰ͖·͢ɻ 例)
$ git merge master origin/master Pullʹ͍ͭͯղઆ
ࠓճ ϦϞʔτʹ࠷৽ͷBranch͕࡞͞Εͨ ͱ͍͏ใϩʔΧϧʹཉ͍͠ͷͰɺɺɺ
Fetch͠Α͏
'FUDI͠·͢ $ git branch –a ͱΔͱϒϥϯνͷঢ়ଶ͕ΈΕΔͷͰfetch͢ΔલʹݟͯΈΑ͏
ࠓͷঢ়ଶ Fetch前 ϩʔΧϧɾ ϦϙδτϦ Fetch͠·͢ A master hoge HEAD B
Fetch͠·͢ $ git fetch $ git branch –a Ͱ࠷৽ͷঢ়ଶΛ࣋ͬͯ͜Εͨ͜ͱΛ֬ೝ͠Α͏
ࠓͷঢ়ଶ Fetchޙɺ ϦϞʔτʹhoge2͕͋Δͱ͍͏͜ͱ͕Θ͔Δ ϩʔΧϧɾ ϦϙδτϦ Fetch͠·͢ origin/hoge2 A master hoge
HEAD B
GitHub্ͷbranchΛϩʔΧϧʹ࡞͠·͢ $ git checkout –b “ローカルに作るブランチ名” “リモートブランチ名” or $ git
checkout –t “リモートブランチ名” CheckoutʹzCzΛ͚ͭΔ͜ͱͰϒϥϯνΛ࡞͠ͳ͕Β ࡞ͨ͠ brunchʹҠಈͰ͖·͢ɻ Checkoutʹz-tzPSl--trackzͰϦϞʔτϒϥϯνͷ໊લΛҾ͖ܧ͍ͩ ϒϥϯν͕ϩʔΧϧʹੜ͞Ε·͢ɻ
GitHub上ͷbranchΛϩʔΧϧʹ࡞͠·͢ $ git checkout –t “ϦϞʔτϒϥϯν໊” $ git status Ͱɺݱࡏͷϒϥϯνͱpushઌͷϒϥϯν͕origin/”࡞ͬͨϒϥϯν”
ͳΒޭͰ͢ɻ
ࠓͷঢ়ଶ ϩʔΧϧʹhoge2͕͋Δͱ͍͏͜ͱ͕ ੜ͞Εhoge2ʹcheckout͍ͯ͠Δ ϩʔΧϧɾ ϦϙδτϦ Fetch͠·͢ hoge2 A master hoge
HEAD B
README.mdΛมߋ͠Α͏ ࠓճ3&"%.&NEͷ̍ߦΛͳΜͰ ͍͍ͷͰมߋ͍ͯͩ͘͠͞
ԼΖͨ͠branchͰίϛοτ͠Α͏ ͖ͬͬͨ͞Έ͍ͨʹίϛοτ͠Α͏
ࠓͷঢ়ଶhoge2Ͱίϛοτ ϩʔΧϧɾ ϦϙδτϦ 'FUDI͠·͢ hoge2 A master hoge HEAD B
C
ͦͯ͠pushɺ $ git push ͠Α͏
ࠓͷঢ়ଶϦϞʔτϒϥϯνʹhoge2Λpush A origin/master ϦϞʔτɾ ϦϙδτϦ hoge2Λpush B origin/hoge2 C
GitHubΛ֬ೝͯ͠ΈΑ͏
GitHubΛ֬ೝͯ͠ΈΑ͏ ˡมߋ͞ΕͨͷΛ֬ೝ GitHubͰଞͷϒϥϯν͕มߋ͞ΕΔͱ QVMMrequestΛ͢Δ͔ฉ͔Ε·͢
masterͷREADEME.mdΛมߋ masteSϒϥϯνΛมߋ
ࠓͷঢ়ଶ Hoge2にいる A origin/master ϦϞʔτɾ ϦϙδτϦ GitHubͰhoge2͔ΒmasterʹҠಈ B origin/hoge2 C
HEAD
ࠓͷঢ়ଶ Hoge2からmasterに移動 A origin/master ϦϞʔτɾ ϦϙδτϦ GithubͰhoge2͔ΒmasterʹҠಈ B origin/hoge2 C
HEAD HEAD
ίϯϑϦΫτղফʹνϟϨϯδ ͜Ε͔ΒΘ͟ͱίϯϑϦΫτΛىͯ͜͠ मਖ਼͢Δ·ͰͷྲྀΕΛߦ͍·͢
MasterʹDͱ͍͏ίϛοτΛߦ͏ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C D
masterʹhoge2ͷมߋΛऔΓࠐΉ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C D
Merge͍ͨ͠ʂ
ಉ͡ͱ͜ΖΛมߋ͢ΔͷͰconflict͕ى͖ΔΑʂ ͱౖΒΕ·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C
D Merge͍ͨ͠ʂ Conflict
masterͷ READEME.mdΛมߋ ͘ғΜͩʹ͋ΔϖϯͷΞΠίϯΛ ΫϦοΫ͍ͯͩ͘͠͞
masterͷ READEME.mdΛมߋ ̍ߦͷͱ͜ΖΛมߋ͍ͯͩ͘͠͞
masterͷ READEME.mdΛมߋ ໘ͳͷͰͦͷ·· z$PNNJUDIBOHFTzΛΫϦοΫ
MasterʹDͱ͍͏ίϛοτ͕Ͱ͖·ͨ͠ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C D
ConflictΛىͦ͜͏ MergeΛ͢ΔͨΊʹϓϧϦΫΤετΛૹΓ·͢
Conflictを起こそう Pull requestͱ ϚʔδΛߦ͏ࡍʹଞͷڞಉ։ൃऀʹίʔυΛϨϏϡʔ ͯ͠͏ͨΊʹ͋Γ·͢ ࠓճ໘ͳͷϨϏϡʔͳͲল͖·͢
$POGMJDUΛىͦ͜͏ ͜͜ͰϨϏϡʔΛͯ͠Β͏ͨΊͷઃఆ͕Ͱ͖·͢ɻ ࠓճল͘ͷͰͦͷ·· lCreate pull requestzΛΫϦοΫ
ConflictΛىͦ͜͏ Conflict͕ى͖ΔͷͰमਖ਼͠ΖͱݴΘΕ·͢
ಉ͡ͱ͜ΖΛมߋ͢ΔͷͰconflict͕ى͖ΔΑʂ ͱౖΒΕͯ·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C
D Merge͍ͨ͠ʂ Conflict
ConflictΛىͦ͜͏ Command lineͷॴΛΫϦοΫ͢ΔͱconflictΛϩʔΧϧͰ मਖ਼͢ΔͨΊͷ̎ͭͷํ๏Λࢦఆ͖ͯ͠·͢
$POGMJDUΛىͦ͜͏ ࠓճ্ͷΓํͰमਖ਼͠·͢
ConflictΛىͦ͜͏ ίϯϑϦΫτΛىͨ͜͠߹ɺmasterͷίϛοτͱ hoge2ͷίϛοτΛऔΓࠐΜͰमਖ਼ͨ͠ίϛοτΛग़ ͠·͢ɻ 2. master(Base branch)ͰίϯϑϦΫτΛղফͨ͠ ίϛοτΛग़ͨ͘͠ͳ͍ͷͰɺmaster branchͰ
ίϯϑϦΫτղফ͠ͳ͍Α͏ʹ͍ͨ͠
masterʹhoge2ͷมߋΛऔΓࠐΉ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B origin/hoge2 C D
merge͍ͨ͠ʂ
masterʹhoge2ͷมߋΛऔΓࠐΉ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B origin/hoge2 C D
merge͍ͨ͠ʂ masterʹhoge2ͷίϛοτ औΓࠐΈΛҰ࣌Ίͯ
ϩʔΧϧͰhoge2ʹmasterͷมߋΛऔΓࠐΉ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C D
Ϛʔδ͢Δͱ ίϯϑϦΫτ͕ى͖·͢ HEAD
masterͱhoge2ͷίϯϑϦΫτΛղফͨ͠ commitΛੜ A master ローカル・ リポジトリ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C
D E .BTUFSͱIPHFͷมߋΛ औΓࠐΜͩ৽͍͠ίϛοτz&z ͕ੜ͞ΕΔ HEAD
hoge2ͰίϛοτΛͨ͠ͷͰϦϞʔτʹpush A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B orign/hoge2 C D
E
masterʹhoge2ͷมߋΛmerge GitHubͷඪ४Ͱmerge͢Δͱ merge commit͕Ͱ͖·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B
origin/hoge2 C D E F merge
ConflictΛىͦ͜͏ master͕มߋ͞ΕͨͷmasterϒϥϯνʹҠಈͯ͠pull͠·͢ $ git pull $ git checkout lϚʔδ͍ͨ͠ϒϥϯνz $
git merge master merge masterͰmasterͷมߋΛऔΓࠐΈ·͢
ConflictΛىͦ͜͏ ͨΓલͰ͕͢ɺಉ͡ՕॴΛมߋͯ͠͠·͍ͬͯΔͷͰ Conflict͕ى͖·͢
ϩʔΧϧͰmasterʹhoge2ͷมߋΛऔΓࠐΉ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C D
Ϛʔδ͢Δͱ ίϯϑϦΫτ͕ى͖·͢ HEAD
ConflictΛىͦ͜͏ $ git diff ͜ͷίϚϯυͰͲ͕͜conflictΛى͍ͯ͜͠Δͷ͔Θ͔Γ·͢
ConflictΛىͦ͜͏ ίϚϯυͰvimͰमਖ਼Ͱ͖·͕͢ɺ ࠓճvscodeͰΓ·͢ɻ
$POGMJDUΛىͦ͜͏ <<<<<<<<< HEAD ͕͜͜Hoge2ͷมߋ෦ ========= ͕͜͜masterͷมߋ෦ >>>>>>>>>master
ConflictΛىͦ͜͏ <<<<<<<<< HEAD ͕͜͜Hoge2ͷมߋ෦ ========= ͕͜͜masterͷมߋ෦ >>>>>>>>>master փ৭ͷ෦ ফ͠·͢
$POGMJDUΛىͦ͜͏ $ git merge master を⾏うとコンフリクト起きてるし、コミット してないよと⾔われるのでコミットします
masterͱhoge2ͷίϯϑϦΫτΛղফͨ͠ commitΛੜ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C
D E Masterͱhoge2ͷมߋΛ औΓࠐΜͩ৽͍͠ίϛοτz&z ͕ੜ͞ΕΔ HEAD
$POGMJDUΛىͦ͜͏ ͋·Γྑ͘ͳ͍ίϯϑϦΫτͷղফͰ͕͢ ίϛοτͨ͠Βpush͍ͯͩ͘͠͞
hoge2ͰίϛοτΛͨ͠ͷͰϦϞʔτʹpush A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B orign/hoge2 C D
E
ConflictΛىͦ͜͏ ίϯϑϦΫτ͕ى͖͍ͯͳ͍͜ͱΛ֬ೝͯ͠ Merge Pull requestΛΫϦοΫͯ͠ mergeΛߦͳ͍ͬͯͩ͘͞
Congratulations! MergeྃͰ͢
masterʹhoge2ͷมߋΛmerge GitHubͷඪ४Ͱmerge͢Δͱ merge commit͕Ͱ͖·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B
origin/hoge2 C D E F merge
ίϯϑϦΫτղফʹνϟϨϯδ ίϯϑϦΫτͷղফͷํGitͷ͍ํ ͨ͘͞Μ͋Γ·͕͢ࠓճ΄ΜͷҰ෦Λ ͑·ͨ͠ 個⼈的にmergeするときはrebaseしてからmergeする派。気になる⼈は遠慮なく聞いてください
Congratulations! ͜ΕͰࠓճͷGit/Github࣮ફฤྃͰ͢ ͓ർΕ༷Ͱͨ͠
210 ҎԼɺ͓·͚
使いやすさ ⽩幡 祐叶 May 00, 2019 Twitter: @y123shi GUI/CUI
GUI/CUI ฤ l CUIͷ͍͍ͱ͜ΖΘΔ͍ͱ͜Ζ l GUIͷ͍͍ͱ͜ΖΘΔ͍ͱ͜Ζ l ѹత͓͢͢Ίͳͷɺɺɺ
GUI/CUIͬͯʁ
l GUI(Graphical User Interface) Α͋͘ΔϚελονύουͱ͔Λͬͯಈ͔ͤΔΠ ϯλʔϑΣʔεͷ͜ͱɻPC͏ͱ͖ʹ͓ͳ͡ΈͷϑΥ ϧμΛΫοϦΫ͢ΔͱϑΝΠϧҰཡ͕ΈΕΔΑ͏ͳ࡞Γ ʹͳͬͯΔͭɻ؆୯͍͏ͱݟ͕ͨ͋Δͭ l CUI(character
user interface) ΈΜͳ͕ߨٛͰ͏Α͏ͳEmacsͱ͔Terminalͱ͔Ϛ ε͑ͳ͍ɺίϚϯυ͡Όͳ͍ͱಈ͔ͳ͍ͭɻ ؆୯ʹ͍͏ͱɺจࣈ͚ͩͷݟͨͳͭɻ GUI/CUIͱʁ
GUIͬͯͲΜͳͭ͋Δͷʁ 1. Source tree
GUIͬͯͲΜͳͭ͋Δͷʁ 1. GitKraken
Gitʹ׳Ε͍ͯͳ͍ͷͳΒѹతʹ CUI͕͍͍ͱࢥ͍ͬͯΔ͔ΒͰ͢ ͦͦͳΜͰͦΜͳ͢Μͷʁ
ࠓճɺ ͳͥ(6*ΑΓ$6*ͷํ͕͍͍ͷ͔͓͠͠·͢
ͦͦॳ৺ऀ͕GUIΛ͏ཧ༝ ίϚϯυͩͱ֮͑Δ͜ͱଟ͗͢ ීஈ͔ΒGUIΛ͔ͭͬͯΔ͔Β ࠇ͍ը໘ා͍ 4. e.t.c
ߟ͑ΔͷΛΊͨ
最初に⾔っておきます GUICUI֮͑Δྔಉ͡ GUIͷํ͕͍͠Մೳੑ͋Δ
GUICUI֮͑Δ͜ͱಉ͡ CUIGUIதͰͬͯΔ͜ͱಉ͡ͳͷͰ CUIͳΒίϚϯυͳͷ͕ɺɺɺ GUIͳΒϘλϯʹͳΔ͘Β͍Ͱ͢ɻ ݁Ռతʹ֮͑ͳ͖Ό͍͚ͳ͍ͷͲͬͪҰॹ
ͭ·Γɺ GUIϚεͰϙνϙνͰ͖Δ͚ͩ ͔ͩΒɺػೳతʹ͍͍ͱ͜Ζಛʹͳ͍
ߋʹݴ͑ɺ GUIຊདྷGitʹͳ͍ػೳΛࡌ͍ͯ͜͠ͱ͋ΔͷͰ ·͢·͢Git͕͘͜͠ͳΔ
GUIͷσϝϦοτ 1. Gitʹͳ͍ಾͷػೳͰ૬खΛΘͤΔ 2. Gitʹͳ͍GUIݻ༗ͷBug͕͋ΔՄೳੑ͋Δ 3. GUIʹͳͬͨ͘Β͍͡ΌGit؆୯ʹͳΒͳ͍ ݟ͕ͨΑ͘มΘΔ
͍ํΛ୳͢ͷʹۤ࿑ 6. GUIͷڥߏங໘ͦ͏ʁ
ͦͦॳ৺ऀ͕GUIΛ͏ཧ༝ ίϚϯυͩͱ֮͑Δ͜ͱଟ͗͢ ීஈ͔ΒGUIΛ͔ͭͬͯΔ͔Β ࠇ͍ը໘ා͍ 4. e.t.c
ߟ͑ΔͷΛΊͨ
ͦͦॳ৺ऀ͕GUIΛ͏ཧ༝ ίϚϯυͩͱ֮͑Δ͜ͱଟ͗͢ ීஈ͔ΒGUIΛ͔ͭͬͯΔ͔Β ࠇ͍ը໘ා͍ 4. e.t.c
ߟ͑ΔͷΛΊͨ ͋ͱ̎ͭ͏ΞϨϧΪʔױऀ͔৯Θͣݏ͍ͳͷͰࢲͰແཧͰ͢
GUIのメリット 1. GUIであること 2. มߋཤྺCUIΑΓݟ͍͔͢ ϚεϙνϙνͰ͖Δ ݟ͕͔͍͍ͨͬ͜ GitKrakenͱ͔
まとめ 1. Interface͕ҧ͏ͱ͜ΖͰGit؆୯ʹͳΒͳ͍ ͦͦGitCUIͰ࡞ΒΕͨͷ͔ͩΒ DocumentΞοϓάϨʔυૣ͍ɻGUIಛ༗ͷ Bugͳͷ͔Git͕ѱ͍ͷ͔·ͳ͍
݁ہɺ͔͑ͨͬͨ͜ͱ ·ͣίϚϯυͰgitΛ͑ΔΑ͏ʹ͔ͯ͠Β ࣗʹ͋ͬͨGUIΛ୳͖͢