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
第1回 Git講座
Search
Pudding
March 18, 2018
Programming
0
780
第1回 Git講座
あくあたん工房での第一回 Git講座の講義資料です。add・commitしてからリモートへpush、プルリクエストがマージされた後、ローカルでのpullする作業までを解説しています。
Pudding
March 18, 2018
Tweet
Share
More Decks by Pudding
See All by Pudding
GNU Make勉強会 / GNU Make Exercise
pddg
2
11k
雑に覚えるVim / Vim Tutorial
pddg
0
98
中古PCのススメ/The fundamentals of used PC
pddg
1
92
もっと気楽にいきましょうって話 / Make more relax
pddg
4
2.3k
アイデアの卵と動かざる手 / Do you have something to do to realize your idea?
pddg
0
190
Docker Seminar for SEL@KIT
pddg
0
130
進学先を間違ったなと思ったら / I made a mistake in my path
pddg
0
150
なぜ平文パスワードはNGなのか / Why are plain passwords evil?
pddg
1
190
Mizql Map @ KITハッカソン2018 by ツナ缶 / Mizql Map
pddg
0
130
Other Decks in Programming
See All in Programming
2026年 エンジニアリング自己学習法
yumechi
0
130
Oxlintはいいぞ
yug1224
5
1.3k
Fragmented Architectures
denyspoltorak
0
140
ThorVG Viewer In VS Code
nors
0
760
Package Management Learnings from Homebrew
mikemcquaid
0
190
Implementation Patterns
denyspoltorak
0
280
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
290
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
5.9k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
230
CSC307 Lecture 07
javiergs
PRO
0
550
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
First, design no harm
axbom
PRO
2
1.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Optimising Largest Contentful Paint
csswizardry
37
3.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Embracing the Ebb and Flow
colly
88
5k
Color Theory Basics | Prateek | Gurzu
gurzu
0
190
Transcript
(JUߨ࠲ ͋͋ͨ͘Μ
࣍ ։ൃʹ͓͚Δόʔδϣϯཧͷେ͞ (JUͷ֓ཁ (JUϗεςΟϯάαʔϏεʹ͍ͭͯ ࠓΔ͜ͱͷઆ໌
(JUͷ֤ૢ࡞Λަ࣮͑ͯश Ὂ DMPOF DIFDLPVU BEE DPNNJU QVTI QVMM GFUDIʜ HJUΫϥΠΞϯτͷհ
։ൃʹ͓͚Δ όʔδϣϯཧͷେ͞
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ϑΝΠϧ໊Ͱཧ Ὂ ཁૉΛ༩ͯ͠ผ໊Ͱอଘ ˗ ˗ ൛ʢվగ൛ɺ࠷৽൛ʜʣ Ὂ
ͲΕ͕࠷৽͔͔Βͳ͘ͳΔ ˗ ࠷৽൛ ˗ ࠷৽൛ʢʣͳͲʜ Ὂ ͭΒ͍
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ιʔείʔυͷมߋΛ ίϝϯτͰཧ Ὂ มߋऀ Ὂ มߋͳͲ ˔ มߋ͕͔Βͳ͍ɾͤͳ͍
Ὂ ݩͷίʔυͲ͏ͩͬͨͷ͔ Ὂ ॻ͖͑ΒΕͨίʔυ ͬͯ͜ͳ͍ import os # 2018/1/18 ύεΛදࣔ print(os.path) if "/usr/bin" in os.path: # 2018/1/20 มߋ print("Loaded") # 2018/1/22 ޙͰ࣮ # hoge() # 2018/1/15 ফͨ͠ # pudding: ͜͜Α͘ͳ͍ end()
όʔδϣϯཧ҉ࠇ࣌ʢʣ ˔ ෳਓͰ։ൃ͢ΔࡍɺϑΝΠϧΛڞ༗ͯ͠ฤू Ὂ ଞਓͷมߋͱίϯϑϦΫτ Ὂ ࣗͷมߋ͕ଞਓͷ্ॻ͖Ͱফ͑Δ Ὂ ݁ہಉ࣌ʹҰਓͣͭͰ࡞ۀ ˔
ٸͳ։ൃλεΫͷՃ Ὂ ػೳ"·్࣮ͩத Ὂ ػೳ#͕ٸʹඞཁʜ Ͳ͏͢Δʁ
खಈͰมߋΛཧ͢Δͷ ਓྨʹ͗͢͠Δ
None
֓ཁ ˔ ࢄܕόʔδϣϯཧγεςϜ ˔ -JOVT5PSWBMETΒʹΑͬͯ࡞ΒΕͨʢʣ Ὂ -JOVYΧʔωϧͷΑ͏ͳڊେͳίʔυΛޮΑ͘ ཧɾ։ൃ͢ΔͨΊ Ὂ ෳਓ։ൃΛָʹ͢ΔͨΊ
˔ (JU࠷ॳͷόʔδϣϯཧγεςϜͰͳ͍ Ὂ -JOVYΧʔωϧॳ#JU,FFQFSΛ͍ͬͯͨ Ὂ ଞʹ༗໊ͳͷ ˠ$74 4VCWFSTJPO .FSDVSJBM #B[BBSͳͲ
όʔδϣϯཧͬͯʁ ˔ શͯͷมߋཤྺ͕HJUʹΑͬͯอଘ ͞Ε͍ͯΔ Ὂ ୭͕ɾ͍ͭɾͲ͏มߋͨ͠ͷ͔ ˔ աڈͷҙͷมߋΕΔ Ὂ มߋͷ࡞ɿ
˔ ͳΜͰཧͰ͖Δ Ὂ ςΩετʹݶΒͳ͍ ˔ ϦϙδτϦ Ὂ ཧԼʹ͋ΔϓϩδΣΫτͷ͜ͱ commit
ࢄܕͬͯͲ͏͍͏͜ͱʁ
(JUϗεςΟϯάαʔϏε ˔ (JUͷϦϞʔτϦϙδτϦΛ ఏڙ͢ΔαʔϏε Ὂ! (JUIVC Ὂ" (JU-BC Ὂ# #JU#VDLFU
˔ ʮ(JUΛ͏ʯ ˠʮόʔδϣϯཧ͢Δʯ ˔ ʮ(JUIVCΛ͏ʯ ˠʮϦϞʔτϦϙδτϦͱͯ͠(JUIVCΛ͏ʯ
ʢ༨ஊʣब׆ʹཱͭ ˔ (JUIVCΞΧϯτͷఏࣔΛٻΊΔاۀ͋Δ Ὂ (JUIVCʹ͜Μͳઃఆ͋Δˠ ˔ ʮ໘લʹదͳ044 ͍Εͱ͚͍͍Μ͡ΌͶXʯ Ὂ ҰॠͰόϨΔ
Ὂ (JUIVCͷʮࣳੜʯͰ׆ಈͷཤྺ͕͙͢Θ͔Δˣ
ࠓΔ͜ͱ
ԋश ˔ νʔϜ։ൃͷྲྀΕΛମݧ DMPOF BEE DPNNJU CSBODI
QVTI QVMMSFRVFTU ϨϏϡʔɾNFSHF GFUDIɾQVMM ֬ೝ ˔ ͋͋ͨ͘Μެࣜ8FC ϖʔδͷϓϩϑΟʔϧΛ ߋ৽͢Δ
(JUͷ֬ೝ ˔ Λ։͘ Ὂ .BDλʔϛφϧͳͲ Ὂ 8JOEPXT(JU#BTI ˔ ৭ʑ֬ೝ͓ͯ͘͠ Ὂ
(JUͷόʔδϣϯ Ὂ ΧϨϯτσΟϨΫτϦ $ git ——version git version 2.15.1.windows.2 $ pwd /path/to/home # ԋश༻σΟϨΫτϦ࡞ $ mkdir git-seminar $ cd git-seminar
(JUͷॳظઃఆ # ઃఆ $ git config ——global user.name “ͳ·͑” $
git config —-global user.email “Ί͋Ͳ” ˔ Ϣʔβ໊ͱ͔Λઃఆ Ὂ DPNNJUͷཤྺʹදࣔ͞ΕΔ໊લͱϝʔϧΞυϨε Ὂ HJUIVCʹొͨ͠ͷͰྑ͍ͱࢥ͏ ˔ QVCMJDͳϦϙδτϦͷ߹ɺશੈքʹެ։͞Εͯ ͍ΔͷͰɺݸਓใҙ ˔ ΦϓγϣϯͰϦϙδτϦ͝ͱʹઃఆͰ͖Δ ——local
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ϦϞʔτϦϙδτϦͷίϐʔΛϩʔΧϧʹ࡞͢Δ ˔ HJUϗεςΟϯάαʔϏεͰެ։͞Ε͍ͯΔجຊ ͲΕͰࣗ༝ʹϩʔΧϧDMPOFͰ͖Δ Ὂ ϩʔΧϧϦϙδτϦͪΌΜͱཧ͠Α͏Ͷʂ clone $ pwd
/path/to/git-seminar $ git clone https://github.com/StudioAquatan/web $ ls web $ cd web
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
ͦͷલʹ
·ͣόʔδϣϯཧͷ ཧղΛਂΊΑ͏
˔ (JUͰมߋΛDPNNJUͱ͍͏୯ҐͰอଘ͢Δ Ὂ ϑΝΠϧͦͷͷΛอଘ͢ΔΘ͚Ͱͳ͍ Ὂ εφοϓγϣοτΛͱΔˠ༰ྔͷઅʹͳΔ ˔ ʮݱࡏͲͷDPNNJUΛࢦ͍ͯ͠Δ͔ʯͰϑΝΠϧͷ ঢ়ଶ͕ཧ͞Ε͍ͯΔ Ὂ
ݱࡏࢦ͍ͯ͠Δ࠷৽ͷDPNNJUΛͱݺͿ ˔ DPNNJUʹܻͷҰҙͳϋογϡ͕༩͑ΒΕΔ ˔ DPNNJU࿈ଓϦετͷΑ͏ʹͳ͍ͬͯΔ Ὂ DPNNJU͕ࣗલͷDPNNJUͷϙΠϯλʢܻ ͷҰҙͳϋογϡʣΛ͍࣋ͬͯΔ commit HEAD
commit શͯͷมߋ͕ DPNNJU͠ऴΘͬͨঢ়ଶ
commit ৽͘͠ ͱ͍͏ϑΝΠϧΛ ࡞ͨ͠ঢ়ଶ user.html $VTFSIUNM
˔ ৽͘͠ϑΝΠϧΛεςʔδʹՃ͢ΔίϚϯυ ˔ εςʔδͱʜʁ Ὂ ϦϙδτϦʹө͢ΔલͷϑΝΠϧมߋҰཡ Ὂ ͜͜ʹՃ͞Ε͍ͯͳ͍DPNNJU͞Εͳ͍ add $
git add user.html $ git status On branch master Your branch is up-to-date with ‘origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: user.html
εςʔδʹ ͱ͍͏ϑΝΠϧΛ Ճͨ͠ঢ়ଶ user.html add $VTFSIUNM
˔ εςʔδʹ্͕͍ͬͯΔมߋΛϦϙδτϦө Ὂ ৽͘͠࡞ͨ͠ͷ͓ͯ͘͜͠ͱ Ὂ طʹϦϙδτϦʹؚ·Ε͍ͯΔϑΝΠϧมߋΛՃ ͑ͨͱ͖ˠ ˔ ίϛοτϝοηʔδΘ͔Γ͘͢ Ὂ
ϑΝΠϧΛՃͨ͠ˠzBEEIPHFz Ὂ ϑΝΠϧΛߋ৽ͨ͠ˠzVQEBUFGVHBzͳͲ $ git commit -m “add test_user.html” [master 3ad5b42] add test_user.html 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test_user.html commit add git commit -a -m “ίϛοτϝοηʔδ”
git commit -m “add user.html” $VTFSIUNM εςʔδͷมߋΛө
શͯͷมߋ͕ DPNNJU͠ऴΘͬͨঢ়ଶ git commit -m “add user.html”
εςʔδ͔ΒDPNNJU·Ͱ ˔ ࡞ۀπϦʔ͔ΒϑΝΠϧ ΛBEE͢ΔͱHJUͷཧର ʹͳΔ ˔ BEEࡁΈͷϑΝΠϧʹม ߋΛՃ͑ΔͱɺࣗಈͰ εςʔδʹ্͕Δ add
commit
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
branch ˔ Ұ࿈ͷDPNNJUʹର͠ذΛ࡞Δ͜ͱ͕ग़དྷΔ Ὂ ذΛ࡞͠ϒϥϯνΛ࡞Δ͜ͱ ˠʮϒϥϯνΛΔʯͱ͍͏ ˔ ϒϥϯνͷਖ਼ମʮ͋Δϒϥϯν໊ͷλά͕͍ͨ Ұ࿈ͷDPNNJUͷ͏ͪ࠷৽ͷͷͷϙΠϯλʯ ˔
࠷جຊͷϒϥϯνˠNBTUFS ˔ ϒϥϯνෳΔ͜ͱ͕Ͱ͖Δ Ὂ ྫɿ։ൃஈ֊͝ͱʢEFWFMPQ SFMFBTFʜʣ Ὂ ྫɿػೳ͝ͱʢGFBUVSFIPHF GFBUVSFGVHBʜʣ ˔ جຊతʹԿ͔͢ΔલʹϒϥϯνΛΔ
˔ NBTUFSͷΈ͕͋Δঢ়ଶ ˔ )&"%ͷࢦ͢ҐஔͱNBTUFSͷࢦ͢Ґஔ͕Ұॹ branch # ϒϥϯνҰཡΛදࣔ $ git branch
* master
branch ˔ ྫͱͯࣗ͠ͷϖʔδΛ࡞͢ΔͨΊʹϒϥϯνΛ ࡞ͯ͠ΈΔ Ὂ ϒϥϯν໊zQBHF\\OBNF^^z $ git branch page/{{name}}
$ git branch * master page/{{name}}
checkout $ git checkout page/{{name}} Switched to branch ‘page/{{name}}' $
git branch master * page/{{name}} ˔ ϒϥϯνͷҠಈʹओʹΘΕΔ Ὂ ಛఆͷίϛοτͷϑΝΠϧΛ෮ݩ͢Δػೳ͋Δ ˔ ࡞ࡁΈͷϒϥϯνҠಈ͢Δଞɺϒϥϯν࡞ͱ ಉ࣌ʹDIFDLPVU͢Δ͜ͱͰ͖Δ git checkout -b page/{{name}}
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
branch $ git add member/{{name}}.html $ git commit -m “add
{{name}} page” ˔ QBHF\\OBNF^^ϒϥϯνDPNNJU͞Εͨ ˔ )&"%͕Ҡಈ͠࠷৽ͷDPNNJUΛࢦ͢ Ὂ NBTUFSมԽ͠ͳ͍
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ϩʔΧϧϦϙδτϦͷมߋΛϦϞʔτϦϙδτϦ ө͢Δ ˔ Ὂ PSJHJOϦϞʔτϦϙδτϦͷผ໊ʢσϑΥϧτʣ Ὂ QVTI͢Δઌͷϒϥϯν໊ʹҙ ˔
͜͜Ͱෆཁ͕ͩɺ৽نͰQVTIΛߦ͏߹ɺϦϞʔ τϦϙδτϦͷΞυϨεΛՃ͢Δඞཁ͕͋Δ push git push origin {{ϒϥϯν໊}} $ git push origin page/{{name}}
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
(JUIVCߨ࠲ࢀর
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
˔ ͋ΔϒϥϯνͰͷDPNNJUΛผͷϒϥϯνऔΓࠐΉ ˔ ҎԼQBHF\\OBNF^^ΛNBTUFSϚʔδ͍ͯ͠Δ Ὂ (JUIVC্ͰQVMMSFRVFTUΛϚʔδ͢Δͱ ϦϞʔτϦϙδτϦͰԼه͕࣮ߦ merge
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
checkout $ git checkout master Switched to branch ‘master' $
git branch * master page/{{name}} ˔ ࡞ۀ͕ऴΘͬͨΒݩͷϒϥϯνΔ Ὂ ࣍ͷϒϥϯνΛੜϒϥϯν͔ΒΒͳ͍Α͏ʹ ˔ DPNNJU͍ͯ͠ͳ͍มߋ͕͋ΔͱΕͳ͍ Ὂ جຊతʹશͯDPNNJU͔ͯ͠ΒΖ͏ Ὂ Ͳ͏ͯ͠ඞཁͳ߹TUBTI͕͑Δ
˔ ϦϞʔτϦϙδτϦͷมߋΛϩʔΧϧϦϙδτϦ ө͢ΔίϚϯυ Ὂ 8PSLJOH%JSFDUPSZͷมߋߦΘͳ͍ ˔ ɹ Ὂ औಘͨ͠มߋΛ࣮ࡍʹө͢Δ Ὂ
PSJHJOͷ\\ϒϥϯν໊^^ΛϩʔΧϧͷ\\ϒϥϯν໊^^ ө͢Δͱ͍͏ҙຯ fetch git merge origin/{{ϒϥϯν໊}} $ git fetch # ͜͜ͰmasterΛϚʔδ͢Δ $ git merge origin/master
˔ ݱࡏ͍ΔϒϥϯνϦϞʔτͷมߋΛϚʔδ͢Δ Ὂ ͦΕҎ্ͷ͍ํΛ͍͚ͯ͠ͳ͍ ˔ લड़ͷGFUDIͱNFSHFPSJHJO\\ϒϥϯν໊^^Λ ҰׅͰ࣮ߦ͢Δ ˔ άάΔͱ༻͠ͳ͍͜ͱΛਪ͢Δهࣄ͕ࢁ ώοτ͢Δ
Ὂ ͪΌΜͱཧղͯ͑͠ศར pull # masterʹ͍ΔͳΒorigin/masterͷมߋ͕औΓࠐ·ΕΔ $ git pull
։ൃͷશମͷྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ ϒϥϯνΛΔ มߋΛBEE DPNNJU ϦϞʔτϦϙδτϦQVTI
QVMMSFRVFTUΛൃߦ NFSHF GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
֬ೝ ˔ ϩʔΧϧө͞Ε͔ͨ֬ೝ͢Δ NBTUFSϒϥϯνΛνΣοΫΞτ NFNCFS\\OBNF^^IUNMΛϒϥβͰ։͘ ˔
Ҏ্͕جຊతͳෳਓ։ൃͷྲྀΕʹͳΔ śŧœʙʢů ьʆ ůʙ̇ git fetch && git merge origin/master
(JUIVCͷ͍ํؚΊͨྲྀΕ ϦϙδτϦΛDMPOFʢ·ͨ࡞ʣ JTTVFΛݐͯΔPSׂΓͯΒΕͨJTTVFΛ֬ೝ ϒϥϯνΛΔ มߋΛBEE DPNNJU
ϦϞʔτϦϙδτϦQVTI QVMMSFRVFTUΛൃߦɺϨϏϡʔɾमਖ਼ޙNFSHF ʢJTTVFΛด͡Δʣ ݩͷϒϥϯνΛDIFDLPVU GFUDIɾQVMMͯ͠ϩʔΧϧʹมߋΛө ֬ೝ
5JQT ˔ 2͍ͭDPNNJU͢Ε͍͍ΜͰ͔͢ʁ "࣌ͱ߹ʹΑΔ͕ɺׂͱࡉ͔͍୯ҐͰDPNNJU͠ ͯશવߏΘͳ͍ɻDPNNJU͕૿͑Δ͜ͱΛڪΕΔ ҙຯແ͍ɻ ˔ 2ϨϏϡʔͯ͠ΒΘͳ͍ͱμϝͰ͔͢ʁ "Ұਓͷ࣌ෆཁɻνʔϜ։ൃͰඞਢ ˔
2ϨϏϡʔ͕ාͯ͘ϓϧϦΫग़ͤ·ͤΜ "ϨϏϡΞʔَ͡Όͳ͍ͷͰ҆৺ͯ͠ ˔ 2ίϯϑϦΫτͨ͠ʂ "࣍ճΓ·͠ΐ͏