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について_2020ver
Search
Tekoneko
August 16, 2020
0
45
Git,GitHubについて_2020ver
少し修正他加えただけです
Tekoneko
August 16, 2020
Tweet
Share
More Decks by Tekoneko
See All by Tekoneko
Git/Github_勉強スライドまとめ
tekoneko
0
140
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
650
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Making the Leap to Tech Lead
cromwellryan
130
8.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
29
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Atom: Resistance is Futile
akmur
261
25k
Gamification - CAS2011
davidbonilla
80
5k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Adopting Sorbet at Scale
ufuk
73
8.9k
A Philosophy of Restraint
colly
202
16k
Bash Introduction
62gerente
608
210k
Transcript
ͱ May 00, 2019 Twitter: @y123shi 1BSU
εϥΠυͷΩʔϫʔυ όʔδϣϯཧ όʔδϣϯཧγεςϜ ϩʔΧϧόʔδϣϯཧγεςϜ ूதܕόʔδϣϯཧγεςϜ
ࢄܕόʔδϣϯཧγεςϜ
ͬͯԿʁ
分散型バージョン管理システム Business photo created by natanaelginting - www.freepik.com 4
ͳʹͦΕ͓͍͍͠ͷʁ
όʔδϣϯཧγεςϜ 7$4 ͱ
ところで みなさんバージョン管理してますか︖ όʔδϣϯཧͯ͠·͔͢ʁ Photo by Emily Morter on Unsplash
7
όʔδϣϯཧ
ͲΕ͕࠷৽όʔδϣϯ͔Θ͔Βͳ͍ όʔδϣϯཧ
ϩʔΧϧɾόʔδϣϯཧγεςϜ
ϩʔΧϧɾόʔδϣϯཧγεςϜ Version Database Version 3 Version 1 Version 2 File
Local Computer
u ̍ͭͷϑΝΠϧͰόʔδϣϯཧͰ͖Δ u ؒҧ͑ͯલͷόʔδϣϯʹͤΔ u มߋཤྺΛ֬ೝͰ͖Δ ϝϦοτ ϩʔΧϧɾόʔδϣϯཧγεςϜ
u ଞͷ։ൃऀͱڞಉ࡞ۀ͕ͮ͠Β͍ Ͱ͖ͳ͍ σϝϦοτ ϩʔΧϧɾόʔδϣϯཧγεςϜ u ̍ͭͷϑΝΠϧͰόʔδϣϯཧͰ͖Δ u ؒҧ͑ͯલͷόʔδϣϯʹͤΔ u
มߋཤྺΛ֬ೝͰ͖Δ ϝϦοτ
Computer A Version Database Version 3 Version 1 Version 2
Computer B Central VCS Server ूதܕόʔδϣϯཧγεςϜ
u ڞಉ࡞ۀ͕͘͢͠ͳΔ u ଞͷਓ͕ԿΛ͍ͯ͠Δͷ͔͋ΔఔΘ͔Δ u ϩʔΧϧόʔδϣϯཧγεςϜͷ ϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ ूதܕόʔδϣϯཧγεςϜ
u ڞಉ࡞ۀ͕͘͢͠ͳΔ u ଞͷਓ͕ԿΛ͍ͯ͠Δͷ͔͋ΔఔΘ͔Δ u ϩʔΧϧόʔδϣϯཧγεςϜͷ ϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ ूதܕόʔδϣϯཧγεςϜ u
αʔόʔ͕ࢭ·ͬͯ͠·͏ͱڞಉ࡞ۀ όʔδϣϯཧͰ͖·ͤΜ ୯Ұো u σʔλϕʔεͷόοΫΞοϓΛऔΒͳ͚ΕͳΒͳ͍ σϝϦοτ
ࢄܕόʔδϣϯཧγεςϜ (JU 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
u ϦϙδτϦΛڞ༗͢Δ͜ͱ͕Ͱ͖Δ u αʔόʔ͕ނোͯ͠ϦϙδτϦΛम෮Ͱ͖Δ u มߋͨ͠ϑΝΠϧͷࠩΛهͰ͖Δ u ूதܕͷϝϦοτΛҾ͖ܧ͍ͰΔ ϝϦοτ ࢄܕόʔδϣϯཧγεςϜ
(JUͷ·ͱΊ q ϑΥϧμʹ࠷৽ͷঢ়ଶͷϑΝΠϧ͚͕ͩΔ q มߋཤྺΛ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ q ࠩΛอଘͰ͖Δ q ΦϑϥΠϯͰ࡞ۀͰ͖Δ q
ιʔγϟϧίʔσΟϯάͰ͖Δ q ࣮΄͔ͷόʔδϣϯཧγεςϜΑΓ؆୯
ͬͯԿʁ
ࢄܕόʔδϣϯཧγεςϜ ϦϙδτϦΛཧ͍ͯ͠Δ 4FSWFS͕(JU)VCͰ͢
ͱ おわり 1BSU
ͱ ⽩幡 祐叶 Aug. 10, 2020 Twitter: @y123shi 1BSU
εϥΠυͷΩʔϫʔυ ϦϙδτϦ ίϛοτ ϓογϡ ϓϧ
ϒϥϯν Ϛʔδ ίϯϑϦΫτ
3FQPTJUPSZ
Java script มߋͨ͠ σʔλͷࠩ ϩʔΧϧɾϦϙδτϦ l ϦϙδτϦ ཧ͍ͨ͠σʔλͷมߋཤྺΛه͢Δ͜ͱ͕Ͱ͖Δ
l ϦϙδτϦ ཧ͍ͨ͠σʔλͷมߋཤྺΛه͢Δ͜ͱ͕Ͱ͖Δ ϩʔΧϧɾϦϙδτϦ Java script มߋͨ͠σʔλ ͷࠩΛอଘ commit
l ϩʔΧϧɾϦϙδτϦ ͕ࣗ࡞ۀΛߦ͏ͨΊʹ༻͢Δ ࣗͷϩʔΧϧ্ʹஔ͞ΕΔϦϙδτϦ l ϦϞʔτɾϦϙδτϦ ઐ༻ͷαʔό (JU)VC ͰཧɺෳਓͰ ڞ༗͢Δ͜ͱ͕Ͱ͖ΔϦϙδτϦ
ϩʔΧϧɾϦϙδτϦ " ϩʔΧϧɾϦϙδτϦ # มߋΛه QVTI มߋΛऔΓࠐΈ QVMM ϦϞʔτɾϦϙδτϦ
$PNNJU
ϩʔΧϧɾϦϙδτϦ Java script มߋͨ͠σʔλ ͷࠩΛอଘ commit l $PNNJU ϑΝΠϧͷՃɾมߋΛϦϙδτϦʹه͢Δ͜ͱ
C D B A ίϛοτ ίϛοτ ίϛοτ Commit มߋͨ͠ϑΝΠϧͷࠩ ৽͘͠Ճͨ͠
ϑΝΠϧ मਖ਼ͨࠩ͠ मਖ਼ͨࠩ͠ ϦϙδτϦͰɺաڈͷίϛοτ ͔Βݱࡏͷঢ়ଶ·ͰͷࠩΛه ϦϙδτϦ
l ίϛοτϝοηʔδ ϦϙδτϦʹه͢ΔࡍʹԿΛมߋͨ͠ͷ͔ Θ͔ΔΑ͏ʹϝοηʔδΛ͠·͢ ྫʣ<GFBU>5PEPػೳͷՃ <GFBU>ɿ GFBUVSF ৽͍͠ػೳͷՃ <GJY>ɿCVHͷमਖ਼ <EPDT>ɿEPDVNFOUͷΈͷՃ
<TUZMF>ɿࡉ͔͍ͱ͜ ۭനͷআ ϑΥʔϚοτͳͲ <SFGBDUPS>ɿϓϩάϥϜͷಈ͖Λม͑ͳ͍ͰιʔείʔυΛมߋ <QSFG>ύϑΥʔϚϯεΛ্͛ΔίϛοτͳͲ <UFTU>ɿςετͷՃςετͷमਖ਼ͳͲ <DIPSF>ͦͷଞ
1VTI
ϩʔΧϧɾϦϙδτϦ " ϩʔΧϧɾϦϙδτϦ # มߋΛه QVTI มߋΛऔΓࠐΈ QVMM ϦϞʔτɾϦϙδτϦ l
1VTI ϩʔΧϧɾϦϙδτϦͷมߋهΛ ϦϞʔτɾϦϙδτϦʹΞοϓϩʔυ͢Δ͜ͱ
l 1VTI ϩʔΧϧɾϦϙδτϦͷมߋهΛ ϦϞʔτɾϦϙδτϦʹΞοϓϩʔυ͢Δ͜ͱ શମʹڞ༗Ͱ͖ΔΑ͏ʹͳΔ ϩʔΧϧɾϦϙδτϦ " ϩʔΧϧɾϦϙδτϦ #
มߋΛه QVTI มߋΛऔΓࠐΈ QVMM ϦϞʔτɾϦϙδτϦ
1VMM
l 1VMM ϦϞʔτɾϦϙδτϦͷมߋهΛ ϩʔΧϧɾϦϙδτϦʹμϯϩʔυ͢Δ͜ͱ ϩʔΧϧɾϦϙδτϦ " ϩʔΧϧɾϦϙδτϦ # มߋΛه
QVTI มߋΛऔΓࠐΈ QVMM ϦϞʔτɾϦϙδτϦ
l 1VMM ϦϞʔτɾϦϙδτϦͷมߋهΛ ϩʔΧϧɾϦϙδτϦʹμϯϩʔυ͢Δ͜ͱ ϦϙδτϦৗʹ࠷৽ͷঢ়ଶ Ͱ͋Δ͜ͱ͕·͍͠ ϩʔΧϧɾϦϙδτϦ " ϩʔΧϧɾϦϙδτϦ
# มߋΛه QVTI มߋΛऔΓࠐΈ QVMM ϦϞʔτɾϦϙδτϦ
#SBODI
l #SBODI ཤྺͷྲྀΕΛذͯ͠هͰ͖Δɻ ذͨ͠#SBODIଞͷ#SBODIͷӨڹΛड͚ͳ͍ C D B A E F
G H ϦϙδτϦ ϦϦʔε༻ #SBODI ػೳՃ༻ #SBODI όάमਖ਼༻ #SBODI
l νΣοΫΞτ NBTUFS CSBODI͔ΒEFWFMPQ CSBODIʹ ࢀরΛมߋ͢Δ C D B A
G H ϦϙδτϦ NBTUFS EFWFMPQ νΣοΫΞτ
.FSHF
EFWFMPQ CSBODIͰՃͨ͠ػೳΛ NBTUFS CSBODIʹՃ͍͑ͨ C B A G H ϦϙδτϦ
NBTUFS EFWFMPQ
C D B A ϦϙδτϦ NBTUFS EFWFMPQ l NFSHF EFWFMPQ
CSBODIͰίϛοτͨࠩ͠Λ NBTUFS CSBODIʹऔΓࠐΉ G H NFSHF
$POGMJDU
C ︖ B A ϦϙδτϦ NBTUFS EFWFMPQ G H NFSHF
l DPOGMJDU ಉ͡ϑΝΠϧΛผʑͷϒϥϯνͰมߋͯ͠ Ϛʔδͨ͠ࡍʹى͖ͯ͠·͏͜ͱ
C D B A ϦϙδτϦ NBTUFS EFWFMPQ G H NFSHF
DPOGMJDU جຊతʹͲͪΒ͔ͷมߋΛऔΓࠐΉ͔ ฤूͯ͠ͲͪΒͷมߋऔΓࠐΊΔΑ͏ʹ͠·͢ ಉ͡ͱ͜ฤूͯ͠ΔΑʂ
εϥΠυͷΩʔϫʔυ ϦϙδτϦ ίϛοτ ϓογϡ ϓϧ
ϒϥϯν Ϛʔδ ίϯϑϦΫτ
ͱ おわり 1BSU
ͱ ⽩幡 祐叶 Aug. 10, 2020 Twitter: @y123shi 1BSU
࣮ࢪฤͷͳ͕Ε ࡞ۀͷྲྀΕ $PNNJU͢Δ $PNNJUͨ͠σʔλΛ1VTI CSBODIΛ࡞͠$IFDLPVU
$POGMJDUΛى͜͢ 1VMM͔Βͷ$POGMJDUΛղফ
४උ͢Δͷ l 5FSNJOBMPS(JU#BTI l $PEF&EJUPS ͜͜Ͱ74DPEFΛ༻͠·͢
࢝ΊΔલʹ֬ೝ (JUͷάϩʔόϧઃఆ͠·͔ͨ͠ʁ
࢝ΊΔલʹ֬ೝ (JUͷάϩʔόϧઃఆ͠·͔ͨ͠ʁ $ git config --global user.name "My Name" $
git config --global user.email
[email protected]
࡞ۀͷྲྀΕ
3&"%.&NEϑΝΠϧΛ࡞ (JUͷཧԼʹஔ͘ ϒϥϯνΛΔ $PNNJU͢Δ .FSHF͢Δ 1VTI͢Δ 処理 HJUJOJU HJUCSBODICSBODIOBNF HJUDIFDLPVUCSBODIOBNF
HJUDPNNJU HJUNFSFHF HJUQVTI コマンド
(JU)VCͰCSBODIΛΔ 3&"%.&NEΛ(JU)VCͰฤू 1VMM͢Δ $PNNJU 1VTI.FSHF͢Δ $POGMJDUͤͯ͞ΈΔ 処理 HJUQVMM HJUDPNNJU HJUQVTI
HJUNFSHF HJUQVTI コマンド
࡞ۀ։࢝
3&"%.&NEΛ࡞͠Α͏ Ͳ͜Ͱ͍͍ͷͰzHJU@UFTUzͱ͍͏໊લͷ σΟϨΫτϦ ϑΥϧμ Λ࡞͍ͯͩ͘͠͞
3&"%.&NEΛ࡞͠Α͏ ファイルを作ろう
3&"%.&NEΛ࡞͠Α͏ ͜Μͳײ͡Ͱదʹॻ͍ͯΈ͍ͯͩ͘͞
3&"%.&NEΛ࡞͠Α͏ zHJU@UFTUzʹϑΝΠϧΛอଘ͍ͯͩ͘͠͞
(JUͷઃఆΛߦ͍·͢ 5FSNJOBMPS(JU#VTIΛ։͍ͯ lHJU@UFTUzͬͯ ໊લͷϑΥϧμʹೖΔ HJUJOJU ͯ͠Έ͍ͯͩ͘͞
͍·Կͳ͍ۭͬΆͷঢ়ଶ ϩʔΧϧɾ ϦϙδτϦ NBTUFS )&"% (JUͷઃఆΛߦ͍·͢ )&"%ࠓ͕ࣗͲͷঢ়ଶʹ͍Δ͔Λࢦ͍ͯ͠·͢ NBTUFSHJUJOJU Λߦ͏ͱ࠷ॳʹͰ͖Δϒϥϯν ͜ͷNBTUFS͔Β࡞ۀΛߦ͏ͨΊͷCSBODIΛ࡞
͢ΔͷͰ#BTFCSBODIͱݴΘΕͯ·͢ɻ
(JUͷઃఆΛߦ͍·͢ ͪΌΜͱઃఆ͞Ε͍ͯΔ͔֬ೝ͢ΔͨΊʹ HJUTUBUVT ͯ͠Έ͍ͯͩ͘͞ ͜ͷίϚϯυͰݱࡏͷঢ়ଶΛݟΕ·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ ͪΌΜͱઃఆ͞Ε͍ͯΔ͔֬ೝ͢ΔͨΊʹ ͜͏ͳͬͨΒޭ
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ $PNNJU͢ΔͨΊʹ HJUBEE3&"%.&NE BEEDPNNJU͢ΔϑΝΠϧΛબͿͨΊʹ͍·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ BEEͰ͖Δͱ৭ʹͳΓ·͢
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ HJUDPNNJUͱΔͱ7JNͷը໘ʹͳΓ·͢ lJzΩʔͰೖྗ։࢝ྃͨ͠͠Β zFTDzΩʔΛԡͯ͠lXRzΛೖྗz&OUFSz
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ HJUTUBUVTͰίϛοτͰ͖͔ͨ֬ೝ ͜Μͳײ͡ʹͳͬͨΒ͓L
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ A ϩʔΧϧɾ ϦϙδτϦ NBTUFS ˢࠓߦͬͨίϛοτ )&"%
ϑΝΠϧΛϓογϡͯ͠ΈΑ͏ ͦͷલʹɺ ϓογϡ͢ΔલʹQVTIઌͷϦϞʔτϦϙδτϦΛ४උ͠Α͏
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ /FX ΛΫϦοΫ͠·͢
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ /FX ΛΫϦοΫ͠·͢ ここ
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ ໊લΛܾΊͨΒl$SFBUFSFQPTJUPSZz リポジトリの名前を決めます
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ ͜Μͳը໘ʹͳͬͨΒ࡞ྃͰ͢
ϑΝΠϧΛQVTIͯ͠ΈΑ͏ ϦϞʔτɾϦϙδτϦ PSJHJO NBTUFS ίϛοτ͕ͳʹͳ͍ঢ়گ
(JU)VCʹϦϙδτϦΛ࡞͠Α͏ ͜Μͳը໘ʹͳͬͨΒ࡞ྃͰ͢ リポジトリのリンクをコピーしてください
(JU)VCʹϦϙδτϦΛQVTI͠Α͏ HJUSFNPUFBEEPSJHJOzίϐʔͨ͠63-z
(JU)VCʹϦϙδτϦΛQVTI͠Α͏ HJUQVTI͢Δͱ͜Μͳද͕ࣔͰΔ
(JU)VCʹϦϙδτϦΛQVTI͠Α͏ HJUQVTITFUVQTUSFBNPSJHJONBTUFS
(JU)VCʹϦϙδτϦΛ֬ೝͯ͠ΈΑ͏
ϑΝΠϧΛίϛοτͯ͠ΈΑ͏ A ϦϞʔτɾϦϙδτϦ PSJHJONBTUFS ˢࠓߦͬͨίϛοτ
(JUͰCSBODIΛͬͯΈΑ͏ HJUCSBODIlϒϥϯν໊z #SBODIΛআ HJUDIFDLPVU lϒϥϯν໊z ࡞ͨ͠#SBODIʹҠಈ
ࠓͷঢ়ଶ HJUCSBODIIPHF A NBTUFS IPHF ϩʔΧϧɾ ϦϙδτϦ (JUͰCSBODIΛͬͯΈΑ͏ )&"% ϒϥϯνΛͬͯ
ࠓͷঢ়ଶ HJUDIFDLPVUIPHF A NBTUFS IPHF ϩʔΧϧɾ ϦϙδτϦ (JUͰCSBODIΛͬͯΈΑ͏ )&"% IPHFʹҠಈͨ͠
)&"%
ผCSBODIͰίϛοτ͠Α͏ 3&"%.&NEΛฤूͯ͠ίϛοτ͠Α͏
A NBTUFS IPHF ϩʔΧϧɾ ϦϙδτϦ ผϒϥϯνͰίϛοτ͠Α͏ )&"% IPHFϒϥϯνͰίϛοτ B
NFSHF͠Α͏ ϚελʔʹҠಈ͠·͢ HJUDIFDLPVUNBTUFS ࡞ͨ͠ϒϥϯνͷมߋΛϚελʔʹऔΓࠐΈ·͢ HJUNFSHFl࡞ͨ͠ϒϥϯνz
A NBTUFS IPHF ϩʔΧϧɾ ϦϙδτϦ NFSHF͠Α͏ )&"% ·ͣNBTUFSʹҠಈ B )&"%
ࠓͷঢ়ଶ NBTUFSͷ࠷৽ίϛοτ͕ IPHFͷίϛοτʹͳΓ·ͨ͠ A NBTUFS IPHF ϩʔΧϧɾ ϦϙδτϦ NFSHF͠Α͏ )&"%
NBTUFS͕ͨͩIPHFͷίϛοτ ʹҠಈ͚ͨͩ͠ͷ͜ͷঢ়ଶΛ 'BTU'PSXBSEͱݴ͍·͢ B
NBTUFS͕มΘͬͨͷͰQVTI ઌʹɺQVTIઌͷϦϞʔτϒϥϯνΛઃఆͨ͠ͷͰࠓճ HJUQVTI ͰɺϦϞʔτϦϙδτϦʹΞοϓϩʔυͰ͖·͢
ࠓͷঢ়ଶ NBTUFSͷ࠷৽ίϛοτ͕ ϦϞʔτͷϚελʔʹQVTI͞Εͨ A PSJHJONBTUFS ϦϞʔτɾ ϦϙδτϦ NFSHF͠Α͏ B
มߋ͞ΕͨͷΛ֬ೝ
(JU)VC্ͰCSBODIΛ࡞ͯ͠ΈΑ͏ ˡ͜͜ΛΫϦοΫ
(JU)VC্ͰCSBODIΛ࡞ͯ͠ΈΑ͏ ৽͘͠࡞Δϒϥϯν໊Λೖྗͯ͠ $SFBUFCSBODIΛΫϦοΫ
ࠓͷঢ়ଶ ϦϞʔτϒϥϯνͰCSBODIΛ࡞ A PSJHJONBTUFS ϦϞʔτɾ ϦϙδτϦ NFSHF͠Α͏ B PSJHJOIPHF
1VMM͠Α͏
ͦͷલʹɺQVMMʹ͍ͭͯղઆ
1VMMʹ͍ͭͯղઆ 1VMMϦϞʔτɾϦϙδτϦͷσʔλΛ μϯϩʔυ͍ͯ͠·͕͢ɺ ݫີʹ̎ͭͷίϚϯυΛ༻ͯͦ͠ΕΛՄೳʹ͍ͯ͠·͢
1VMMʹ͍ͭͯղઆ HJUGFUDI & HJUNFSHF 1VMMϦϞʔτɾϦϙδτϦͷσʔλΛ μϯϩʔυ͍ͯ͠·͕͢ɺ ݫີʹ̎ͭͷίϚϯυΛ༻ͯͦ͠ΕΛՄೳʹ͍ͯ͠·͢
1VMMʹ͍ͭͯղઆ HJUGFUDI ϦϞʔτɾϦϙδτϦ͔Β࠷৽ͷใΛ ϩʔΧϧɾϦϙδτϦʹ࣋ͬͯ͘ΔίϚϯυͰ͢ QVMMͷΑ͏ʹGJMFߋ৽͞Ε·ͤΜ HJUNFSHF NFSHFΛ͢Δ͜ͱͰϦϞʔτɾϦϙδτϦ͔Β ࠷৽ͷใΛॴಘͰ͖·͢ɻ ྫʣ HJUNFSHFNBTUFSPSJHJONBTUFS
ࠓճ ϦϞʔτʹ࠷৽ͷ#SBODI͕࡞͞Εͨ ͱ͍͏ใ͕ཉ͍͠ͷͰɺɺɺ
'FUDI͠Α͏
'FUDI͠·͢ HJUCSBODIrB ͱΔͱϒϥϯνͷঢ়ଶ͕ΈΕΔͷͰGFUDI͢ΔલʹݟͯΈΑ͏
ࠓͷঢ়ଶ 'FUDIલ ϩʔΧϧɾ ϦϙδτϦ 'FUDI͠·͢ A master hoge HEAD
B
'FUDI͠·͢ HJUGFUDI HJUCSBODIrB Ͱ࠷৽ͷঢ়ଶΛ࣋ͬͯ͜Εͨ͜ͱΛ֬ೝ͠Α͏
ࠓͷঢ়ଶ 'FUDIޙɺ ϦϞʔτʹIPHF͕͋Δͱ͍͏͜ͱ͕Θ͔Δ ϩʔΧϧɾ ϦϙδτϦ 'FUDI͠·͢ origin/hoge2 A master hoge
HEAD B
(JU)VC্ͷCSBODIΛϩʔΧϧʹ࡞͠·͢ HJUDIFDLPVUrClϩʔΧϧʹ࡞Δϒϥϯν໊z lϦϞʔτϒϥϯν໊z PS HJUDIFDLPVUrUlϦϞʔτϒϥϯν໊z $IFDLPVUʹzCz Λ͚ͭΔ͜ͱͰϒϥϯνΛ࡞͠ͳ͕Β ࡞ͨ͠ CSVODIʹҠಈͰ͖·͢ɻ $IFDLPVUʹzUzPSlUSBDLzͰϦϞʔτϒϥϯνͷ໊લΛҾ͖ܧ͍ͩ
ϒϥϯν͕ϩʔΧϧʹੜ͞Ε·͢ɻ
(JU)VC্ͷCSBODIΛϩʔΧϧʹ࡞͠·͢ HJUDIFDLPVUrUlϦϞʔτϒϥϯν໊z HJUTUBUVT ͰɺݱࡏͷϒϥϯνͱQVTIઌͷϒϥϯν͕PSJHJOz࡞ͬͨϒϥϯνz ͳΒޭͰ͢ɻ
ࠓͷঢ়ଶ ϩʔΧϧʹIPHF͕͋Δͱ͍͏͜ͱ͕ ੜ͞ΕIPHFʹDIFDLPVU͍ͯ͠Δ ϩʔΧϧɾ ϦϙδτϦ 'FUDI͠·͢ hoge2 A master hoge
HEAD B
3&"%.&NEΛมߋ͠Α͏ ࠓճ3&"%.&NEͷ̍ߦΛͳΜͰ ͍͍ͷͰมߋ͍ͯͩ͘͠͞
ԼΖͨ͠CSBODIͰίϛοτ͠Α͏ ͖ͬͬͨ͞Έ͍ͨʹίϛοτ͠Α͏
ࠓͷঢ়ଶIPHFͰίϛοτ ϩʔΧϧɾ ϦϙδτϦ 'FUDI͠·͢ hoge2 A master hoge HEAD C
B
ͦͯ͠QVTIɺ HJUQVTI ͠Α͏
ࠓͷঢ়ଶϦϞʔτϒϥϯνʹIPHFΛQVTI A origin/master ϦϞʔτɾ ϦϙδτϦ IPHFΛQVTI B origin/hoge2 C
(JU)VCΛ֬ೝͯ͠ΈΑ͏
(JU)VCΛ֬ೝͯ͠ΈΑ͏ ˡมߋ͞ΕͨͷΛ֬ೝ GitHubでは他のブランチが変更͞ΕΔとpull requestをするか聞かれます
.BTUFSͷ 3&"%&.&NEΛมߋ NBTUFSϒϥϯνΛมߋ
ࠓͷঢ়ଶ )PHFʹ͍Δ A origin/master ϦϞʔτɾ ϦϙδτϦ (JUIVCͰIPHF͔ΒNBTUFSʹҠಈ B origin/hoge2 C
HEAD
ࠓͷঢ়ଶ )PHF͔ΒNBTUFSʹҠಈ A origin/master ϦϞʔτɾ ϦϙδτϦ (JUIVCͰIPHF͔ΒNBTUFSʹҠಈ B origin/hoge2 C
HEAD HEAD
ίϯϑϦΫτղফʹνϟϨϯδ ࠓճ࣌ؒॖͷͨΊʹ(JU)VCͷػೳΛ ڭ͑Δͷͱͱʹԣண͍͖ͯ͠·͢
ίϯϑϦΫτղফʹνϟϨϯδ ͜Ε͔ΒΘ͟ͱίϯϑϦΫτΛىͯ͜͠ मਖ਼͢Δ·ͰͷྲྀΕΛߦ͍·͢
.BTUFSʹ%ͱ͍͏ίϛοτΛߦ͏ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ B origin/hoge2 C D
NBTUFSʹIPHFͷมߋΛऔΓࠐΉ origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ origin/hoge2 .FSHF͍ͨ͠ʂ A B C
D ?
ಉ͡ͱ͜ΖΛมߋ͢ΔͷͰconflict͕ى͖ΔΑʂ ͱౖΒΕ·͢ origin/master リモート・ リポジトリ ίϯϑϦΫτ·ͰͷྲྀΕ origin/hoge2 Mergeしたい︕ A B
C D ? Conflict
.BTUFSͷ 3&"%&.&NEΛมߋ ͘ғΜͩʹ͋ΔϖϯͷΞΠίϯΛ ΫϦοΫ͍ͯͩ͘͠͞
.BTUFSͷ 3&"%&.&NEΛมߋ ̍ߦͷͱ͜ΖΛมߋ͍ͯͩ͘͠͞
.BTUFSͷ 3&"%&.&NEΛมߋ ໘ͳͷͰͦͷ·· z$PNNJUDIBOHFTzΛΫϦοΫ
.BTUFSʹ%ͱ͍͏ίϛοτ͕Ͱ͖·ͨ͠ origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ origin/hoge2 A B C D
$POGMJDUΛىͦ͜͏ .FSHFΛ͢ΔͨΊʹϓϧϦΫΤετΛૹΓ·͢
$POGMJDUΛىͦ͜͏ 1VMMSFRVFTUͱ ϚʔδΛߦ͏ࡍʹଞͷڞಉ։ൃऀʹίʔυΛϨϏϡʔ ͯ͠͏ͨΊʹ͋Γ·͢ ࠓճ໘ͳͷϨϏϡʔͳͲল͖·͢
$POGMJDUΛىͦ͜͏ ͜͜ͰϨϏϡʔΛͯ͠Β͏ͨΊͷઃఆ͕Ͱ͖·͢ɻ ࠓճল͘ͷͰͦͷ·· l$SFBUFQVMMSFRVFTUzΛΫϦοΫ
$POGMJDUΛىͦ͜͏ $POGMJDU͕ى͖ΔͷͰमਖ਼͠ΖͱݴΘΕ·͢
ಉ͡ͱ͜ΖΛมߋ͢ΔͷͰDPOGMJDU͕ى͖ΔΑʂ ͱౖΒΕͯ·͢ ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτ·ͰͷྲྀΕ origin/master origin/hoge2 Mergeしたい︕ A B
C D ? Conflict
$POGMJDUΛىͦ͜͏ $PNNBOEMJOFͷॴΛΫϦοΫ͢ΔͱDPOGMJDUΛϩʔΧϧͰ मਖ਼͢ΔͨΊͷ̎ͭͷํ๏Λࢦఆ͖ͯ͠·͢
$POGMJDUΛىͦ͜͏ ࠓճ্ͷΓํͰमਖ਼͠·͢
$POGMJDUΛىͦ͜͏ ίϯϑϦΫτΛىͨ͜͠߹ɺNBTUFSͷίϛοτͱ IPHFͷίϛοτΛऔΓࠐΜͰमਖ਼ͨ͠ίϛοτΛग़ ͠·͢ɻ NBTUFS #BTFCSBODI ͰίϯϑϦΫτΛղফͨ͠ ίϛοτΛग़ͨ͘͠ͳ͍ͷͰɺNBTUFSCSBODIͰ
ίϯϑϦΫτղফ͠ͳ͍Α͏ʹ͍ͨ͠
NBTUFSʹIPHFͷมߋΛऔΓࠐΉ ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ origin/master origin/hoge2 Mergeしたい︕ A B C
D ?
NBTUFSʹIPHFͷมߋΛऔΓࠐΉ A origin/master リモート・ リポジトリ ίϯϑϦΫτղফ·ͰͷྲྀΕ B origin/hoge2 C D
Mergeしたい︕ NBTUFSʹIPHFͷίϛοτΛऔΓࠐΉͷΛҰ࣌Ίͯ
ϩʔΧϧͰIPHFʹNBTUFSͷมߋΛऔΓࠐΉ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C D
Ϛʔδ͢Δͱ ίϯϑϦΫτ͕ى͖·͢ HEAD
NBTUFSͱIPHFͷίϯϑϦΫτΛղফͨ͠ DPNNJUΛੜ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C
D E .BTUFSͱIPHFͷมߋΛ औΓࠐΜͩ৽͍͠ίϛοτz&z ͕ੜ͞ΕΔ HEAD
IPHFͰίϛοτΛͨ͠ͷͰϦϞʔτʹQVTI A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B orign/hoge2 C D
E
NBTUFSʹIPHFͷมߋΛNFSHF (JU)VCͷඪ४ͰNFSHF͢Δͱ NFSHFDPNNJU͕Ͱ͖·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B origin/hoge2
C D E F merge
$POGMJDUΛىͦ͜͏ .BTUFS͕มߋ͞ΕͨͷNBTUFSϒϥϯνʹҠಈͯ͠QVMM͠·͢ HJUQVMM HJUDIFDLPVUlϚʔδ͍ͨ͠ϒϥϯνz HJUNFSHFNBTUFS NFSHF NBTUFSͰNBTUFSͷมߋΛऔΓࠐΈ·͢
$POGMJDUΛىͦ͜͏ ͨΓલͰ͕͢ɺಉ͡ՕॴΛมߋͯ͠͠·͍ͬͯΔͷͰ $POGMJDU͕ى͖·͢
ϩʔΧϧͰNBTUFSʹIPHFͷมߋΛऔΓࠐΉ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C D
Ϛʔδ͢Δͱ ίϯϑϦΫτ͕ى͖·͢ HEAD
$POGMJDUΛىͦ͜͏ HJUEJGG ͜ͷίϚϯυͰͲ͕͜DPOGMJDUΛى͍ͯ͜͠Δͷ͔Θ͔Γ·͢
$POGMJDUΛىͦ͜͏ ίϚϯυͰWJNͰमਖ਼Ͱ͖·͕͢ɺࠓճWTDPEFͰ Γ·͢ɻ
$POGMJDUΛىͦ͜͏ )&"% ͕͜͜)PHFͷมߋ෦ ͕͜͜NBTUFSͷมߋ෦ NBTUFS
$POGMJDUΛىͦ͜͏ )&"% ͕͜͜)PHFͷมߋ෦ ͕͜͜NBTUFSͷมߋ෦ NBTUFS փ৭ͷ෦ ফ͠·͢
$POGMJDUΛىͦ͜͏ HJUNFSHFNBTUFS Λߦ͏ͱίϯϑϦΫτى͖ͯΔ͠ɺίϛοτ ͯ͠ͳ͍ΑͱݴΘΕΔͷͰίϛοτ͠·͢
NBTUFSͱIPHFͷίϯϑϦΫτΛղফͨ͠ DPNNJUΛੜ A master ϩʔΧϧɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B hoge2 C
D E .BTUFSͱIPHFͷมߋΛ औΓࠐΜͩ৽͍͠ίϛοτz&z ͕ੜ͞ΕΔ HEAD
$POGMJDUΛىͦ͜͏ HJUNFSHFNBTUFS Λߦ͏ͱίϯϑϦΫτى͖ͯΔ͠ɺίϛοτ ͯ͠ͳ͍ΑͱݴΘΕΔͷͰίϛοτ͠·͢ ͋·Γྑ͘ͳ͍ίϯϑϦΫτͷղফͰ͕͢ίϛοτͨ͠Β QVTI͍ͯͩ͘͠͞
IPHFͰίϛοτΛͨ͠ͷͰϦϞʔτʹQVTI A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B orign/hoge2 C D
E
$POGMJDUΛىͦ͜͏ ίϯϑϦΫτ͕ى͖͍ͯͳ͍͜ͱΛ֬ೝͯ͠ .FSHF1VMMSFRVFTUΛΫϦοΫͯ͠ NFSHFΛߦͳ͍ͬͯͩ͘͞
$POHSBUVMBUJPOT .FSHFྃͰ͢
NBTUFSʹIPHFͷมߋΛNFSHF (JU)VCͷඪ४ͰNFSHF͢Δͱ NFSHFDPNNJU͕Ͱ͖·͢ A origin/master ϦϞʔτɾ ϦϙδτϦ ίϯϑϦΫτղফ·ͰͷྲྀΕ B origin/hoge2
C D E F NFSHF
ίϯϑϦΫτղফʹνϟϨϯδ ίϯϑϦΫτͷղফͷํ(JUͷ͍ํ ͨ͘͞Μ͋Γ·͕͢ࠓճ΄ΜͷҰ෦Λ ͑·ͨ͠ ݸਓతʹNFSHF͢Δͱ͖SFCBTF͔ͯ͠ΒNFSHF͢ΔɻؾʹͳΔਓԕྀͳ͘ฉ͍ͯ
$POHSBUVMBUJPOT ͜ΕͰࠓճͷ(JU(JUIVC࣮ફฤྃͰ͢ ͓ർΕ༷Ͱͨ͠