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
45
Other Decks in Programming
See All in Programming
ROS 2のZenoh対応とZenohのROS 2対応
takasehideki
2
270
sqlcを利用してsqlに型付けを
kamiyam
0
230
pytest プラグインを開発して DRY に自動テストを書こう
inuatsu
2
250
Frontend Magic mit CSS Houdini
joergneumann
0
420
XP2024 っていう国際会議に行ってきたよの記 / XP2024 Conference Report
bonotake
4
190
Kubernetes上でOracle_Databaseの運用を楽にするOraOperatorの紹介
nnaka2992
0
150
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
0
150
Делим тесты между QA и разработчиком
mariyasaygina
0
500
AWS Lambda Web Adapterを活用する新しいサーバーレスの実装パターン
tmokmss
6
5.7k
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
280
perl for shell, awk and sed programmers
mackee
1
500
App Router 悲喜交々
quramy
7
370
Featured
See All Featured
Visualization
eitanlees
143
15k
No one is an island. Learnings from fostering a developers community.
thoeni
19
2.9k
For a Future-Friendly Web
brad_frost
174
9.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Building Adaptive Systems
keathley
37
2.1k
Clear Off the Table
cherdarchuk
91
320k
Docker and Python
trallard
40
3k
Designing Experiences People Love
moore
138
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
38
2.1k
Raft: Consensus for Rubyists
vanstee
136
6.6k
The Mythical Team-Month
searls
218
43k
Creatively Recalculating Your Daily Design Routine
revolveconf
217
12k
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Λ୳͖͢