Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Git/GitHub入門-GitHubでたのしいチーム開発
Search
Yuta Totz
August 24, 2015
Programming
0
310
Git/GitHub入門-GitHubでたのしいチーム開発
岡山大学テクノロジーラボ(OTL)のGitとGitHubについての入門ワークショップのときのスライドです。
Yuta Totz
August 24, 2015
Tweet
Share
More Decks by Yuta Totz
See All by Yuta Totz
ウガンダでXcodeをアップデートする方法
totzyuta
0
140
Working with UNIX Process 6/7 Chapter
totzyuta
1
71
珈琲と僕
totzyuta
0
110
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.7k
TDDとVimと
totzyuta
1
540
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
totzyuta
0
440
Vimmer幼稚園
totzyuta
2
120
たのしいたーみなる
totzyuta
0
52
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
220
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
240
Deno Tunnel を使ってみた話
kamekyame
0
190
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.4k
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
9
5.9k
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
450
AIエージェントの設計で注意するべきポイント6選
har1101
5
1.6k
チームをチームにするEM
hitode909
0
350
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
370
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
120
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
170
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
Building an army of robots
kneath
306
46k
Everyday Curiosity
cassininazir
0
110
Documentation Writing (for coders)
carmenintech
77
5.2k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The browser strikes back
jonoalderson
0
66
The Language of Interfaces
destraynor
162
25k
The SEO identity crisis: Don't let AI make you average
varn
0
32
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Transcript
Git/GitHub ೖ GitHubͰͨͷ͍͠νʔϜ։ൃ
ຊͷΰʔϧ
- Gitͨͷ͍͠ʂ - GitHubͰνʔϜ։ൃؾ͍࣋ͪʂ
git
git ͬͯͳΜΖ͔…
ࢄόʔδϣϯཧγεςϜ …Α͚͍Θ͔ΒΜ
ཁ͢Δͱ ࢄ ͯ͠ɺ όʔδϣϯ Λ ཧ͢Δ γεςϜ ͷ͜ͱ
ʮόʔδϣϯཧʯͬͯ…ʁ
ීஈͬͯΔ͜ͱ
ීஈͬͯΔ͜ͱ ϝϞ.txt ϝϞ ID: hoge
ϝϞ.txt ϝϞ ID: hoge ීஈͬͯΔ͜ͱ ϝϞ.txt ϝϞ ID: hoge2015 ฤूதʜ
ීஈͬͯΔ͜ͱ ϝϞ.txt ϝϞ ID: hoge ϝϞ.txt ϝϞ ID: hoge2015 ηʔϒʂʂ
ීஈͬͯΔ͜ͱ ϝϞ.txt ϝϞ ID: hoge ϝϞ.txt ϝϞ ID: hoge2015 ؒҧ͑ͯͨʂʂ
͍͚ͨ͠Ͳ্ॻ͖ͯ͠Μ͡ΌΜʂʂʂ
όʔδϣϯΛཧ͍ͨ͠ͱ͖ɺ Ͳ͏͠·͔͢ʁ …Α͚͍Θ͔ΒΜ
ίϐʔͯ͠όοΫΞοϓΛ ͱ͓ͬͯ͘ Ҋͦͷ̍
ίϐʔΛͱ͓ͬͯ͘ ࠷৽൛index.html index.html (લͷͭ) index-old.html index20510620.html ฤू༻index.html index.html
None
ʮόʔδϣϯཧʯͱ
ηʔϒ͢Δͨͼʹɺ όʔδϣϯΛৼΓ·͢
ʮόʔδϣϯཧʯͱ… ϝϞ.txt มߋ͠·ͨ͠ʂ ϝϞ.txt ηʔϒ͠·ͨ͠ʂ ver. 2 ver. 1
ʮόʔδϣϯཧʯͱ… ϝϞ.txt ϝϞ.txt ͍ؒҧ͑ͯͨʂ ্͔͠ॻ͖ͪ͠Όͬ ͨΑʔʂʂ ver. 2 ver. 1
ͦΜͳͱ͖ʹgitͳΒ ϝϞ.txt Ұݸલʹηʔϒͨ͠ ͱ͜Ζ(ver.1)ʹΔʂ ϝϞ.txt ͜ΕͰ҆৺ʂศརʂ ver. 2 ver. 1
ͯ͢ͷมߋཤྺΛཧͰ͖Δ gitͷ͍͍ͱ͜Ζͦͷ̍
gitͷ͜ͱ • ηʔϒ = ίϛοτ (commit) • ϦϙδτϦ = ϑΥϧμ
gitͷ͘͠Έ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit
merge ࣗͷ1$ͷத push fetch
ΈΜͳ͕ΈΜͳͷPCͰ ωοτͳͯ͘࡞ۀͰ͖Δ gitͷ͍͍ͱ͜Ζͦͷ̎
͜ΕͰgit͑Δʂ
$ git add FILENAME $ git commit -m “message” $
git push 1. εςʔδϯάɾΤϦΞʹՃ 2. ϩʔΧϧͰมߋΛηʔϒ 3. ϩʔΧϧͷηʔϒΛϦϞʔτʹηʔϒ
$ git add FILENAME $ git commit -m “message” 1.
εςʔδϯάɾΤϦΞʹՃ 2. ϩʔΧϧͰมߋΛηʔϒ
$ git add/commit ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM
TUZMFDTT add/commit ࣗͷ1$ͷத
$ git add FILENAME $ git commit -m “message” $
git push 1. εςʔδϯάɾΤϦΞʹՃ 2. ϩʔΧϧͰมߋΛηʔϒ 3. ϩʔΧϧͷηʔϒΛϦϞʔτʹηʔϒ
$ git push 3. ϩʔΧϧͷηʔϒΛϦϞʔτʹηʔϒ
$ git push ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM
TUZMFDTT ࣗͷ1$ͷத push
GitHubͱ
None
GitHubɺ GitͷϦϙδτϦ ΛϗεςΟϯά͢ΔαʔϏε
gitͷ͘͠Έ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit
merge ࣗͷ1$ͷத push fetch (JU)VC
None
νʔϜ։ൃͲ͏Μͷ
νʔϜ։ൃͷΓ͔ͨ τπΧͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ (GitHub͕ϗετ) JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT
commit merge fetch push
൴ঁͱڞಉ࡞ۀΛ͢Δͱ͖
൴ঁͱڞಉ࡞ۀΛ͢Δͱ͖ τπΧͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit merge
fetch push ൴ঁͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit merge fetch push ϦϞʔτϦϙδτϦ (GitHub͕ϗετ)
ϦϞʔτϦϙδτϦ (GitHub͕ϗετ) ൴ঁͱڞಉ࡞ۀΛ͢Δͱ͖ τπΧͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT
commit merge fetch push ൴ঁͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit merge fetch push ͜Ε͕ࢄʂʂʂ
νʔϜ։ൃϑϩʔ
νʔϜ։ൃϑϩʔ • ࣗͷΞΧϯτʹσʔλΛෳ (fork) • ϩʔΧϧ(ࣗͷPCͷத)ʹσʔλΛ࣋ͬͯ͘Δ (clone) • ฤू͢Δ •
มߋ༰Λίϛοτ(ηʔϒ)͢Δ (add/commit) • ίϛοτ༰ΛϦϞʔτ(GitHub্ͷιʔε)ʹө͢Δ (push) • Pull RequestΛͩ͢ (GitHubͷը໘͔Βʂ)
1. ෳ͢Δ (fork) ฤू͍ͨ͠σʔλͷෳΛࣗͷ GitHubͷΞΧϯτʹͭ͘Ε·͢ GitHubͷϖʔδ͔Βʂʂ
1. ෳ͢Δ (fork) ϩʔΧϧϦϙδτϦ ϦϞʔτϦϙδτϦ ࣗͷ1$ͷத (JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT
ΦϦδφϧ
1. ෳ͢Δ (fork) ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ ࣗͷ1$ͷத fork (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧ
$ git clone https://github… 2. ࣗͷPCʹ࣋ͬͯ͘Δ (clone) ϦϞʔτ(GitHub)͔Β ϩʔΧϧ(ࣗͷCP)ʹσʔλΛ͖࣋ͬͯ·͢ *
URLGitHubͷϖʔδ͔Βίϐϖ͠·͢
2. ࣗͷPCʹ࣋ͬͯ͘Δ (clone) ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ ࣗͷ1$ͷத (JU)VC ࣗͷΞΧϯτ
JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ
2. ࣗͷPCʹ࣋ͬͯ͘Δ (clone) ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத
clone (JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
3. ฤू͢Δ
3. ฤू͢Δ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
3. ฤू͢Δ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT ฤूͨͬͨ͠ʂʂʂʂ
$ git commit -m “message” 4. ίϛοτ(ηʔϒ)͢Δ ϩʔΧϧʢࣗͷPCͷதʣͰ มߋ༰Ληʔϒʂ $
git add FILENAME commit(ηʔϒ)͢ΔϑΝΠϧΛબͿ
4. ίϛοτ(ηʔϒ)͢Δ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
4. ίϛοτ(ηʔϒ)͢Δ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT add /
commit ࣗͷ1$ͷத (JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
$ git push 5. ϦϞʔτʹө͢Δ (push) ϩʔΧϧʢࣗͷPCʣͷதͷมߋΛ ϦϞʔτʢGitHub্ʣͷιʔεʹө͠·͢
5. ϦϞʔτʹө͢Δʢpushʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
5. ϦϞʔτʹө͢Δʢpushʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT push
GitHubͷϖʔδ͔Βʂʂ 6. มߋΛऔΓࠐΜͰΒ͏ ʢpull requestʣ ΦϦδφϧͷϨϙδτϦʹ ʮͷมߋΛऔΓࠐΜͰ͘Εʂʯ ͱϦΫΤετ͠·͢
5. มߋΛऔΓࠐΜͰΒ͏ʢpull requestʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத
(JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT
5. ϦϞʔτʹө͢Δʢpushʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT PR มߋ͔ͨ͠Βऔ ΓࠐΜͰΑʔʂʂ
5. ϦϞʔτʹө͢Δʢpushʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத (JU)VC
ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ JOEFYIUNM TUZMFDTT PR มߋ͔ͨ͠Βऔ ΓࠐΜͰΑʔʂʂ 0,
0. ΈΜͳͷมߋΛऔΓࠐΉ $ git pull upstream master ΦϦδφϧͷํͷϦϞʔτʢGitHub্ʣ͕มߋ͞Ε ͍ͯͨΒ࠷৽൛ΛࣗͷιʔεʹऔΓࠐΉ $
git remote add upstream https:// github.com/okadai-techlab/okayama-u- techlab.com.git ͯ͘Β΅ͷΦϦδφϧͷํϦϞʔτઌͱͯ͠ొ͢Δ * ొ࠷ॳͷҰճ͚ͩͰ͍͍Αʂ ‘upstrem’໊ͬͯલ͡Όͳ͍͍ͯ͘Αʂ
5. มߋΛऔΓࠐΜͰΒ͏ʢpull requestʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத
(JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT ΦϦδφϧʢຊମʣ upstream JOEFYIUNM TUZMFDTT ୭͔͕มߋͨ͠ ʢ࠷৽൛ʣ ෳ origin
5. มߋΛऔΓࠐΜͰΒ͏ʢpull requestʣ ϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT ϦϞʔτϦϙδτϦ JOEFYIUNM TUZMFDTT ࣗͷ1$ͷத
(JU)VC ࣗͷΞΧϯτ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT pull ΦϦδφϧʢຊମʣ upstream ෳ origin
൴ঁͱڞಉ࡞ۀΛ͢Δͱ͖ τπΧͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit merge
push ൴ঁͷϩʔΧϧϦϙδτϦ JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT commit merge pull push ϦϞʔτϦϙδτϦ (GitHub͕ϗετ) upstream JOEFYIUNM TUZMFDTT JOEFYIUNM TUZMFDTT push pull push PR PR ෳ origin
νʔϜ։ൃϑϩʔ • ࣗͷΞΧϯτʹσʔλΛෳ (fork) … 1ճ͚ͩ • ϩʔΧϧ(ࣗͷPCͷத)ʹσʔλΛ࣋ͬͯ͘Δ (clone) …
1ճ͚ͩ • ࠷৽൛ΛऔΓࠐΉ (pull) • ฤू͢Δ • มߋ༰Λίϛοτ(ηʔϒ)͢Δ (add/commit) • ίϛοτ༰ΛϦϞʔτ(GitHub্ͷιʔεorigin)ʹө͢Δ (push) • ΈΜͳͷมߋΛऔΓࠐΉ (Pull RequestΛͩ͢) -> pullʹΔ
Demo