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
HIRAKI Satoru
May 09, 2012
Technology
3
870
Git & GitHub社内勉強会
社内での勉強会で使った資料です。Git使った事無い人向け。あと、実際にターミナルで実演したんで、そことか分かりにくいだろうけども…。
HIRAKI Satoru
May 09, 2012
Tweet
Share
More Decks by HIRAKI Satoru
See All by HIRAKI Satoru
About tc39/ecma262
layzie
2
1.2k
GitHub Enterprise for CyberAgent
layzie
0
150
情報化社会を この先生きのこるためには / Layzie@Frontrend in Kanazawa
layzie
9
6.9k
VimとTシャツと私 / Why I love vim so much?
layzie
1
270
Kuroi Gamenって何で使うの?
layzie
7
3.5k
TalkNote Vol.8「TalkNote × Frontrend」 - JavaScript開発の効率アップ -
layzie
8
440
JavaScript Development Tools
layzie
9
1.3k
GitとGithub初めの1歩
layzie
0
150
Other Decks in Technology
See All in Technology
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
さらに高品質・高速化を目指すAI時代のテスト設計支援と、めざす先 / AI Test Lab vol.1
shift_evolve
0
190
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
頼られるのが大好きな 皆さんへ - 支援相手との期待の合わせ方、突き放し方 -/For_people_who_like_to_be_relied_on
naitosatoshi
1
290
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
150
Classmethod Odyssey 登壇資料
yamahiro
0
390
LLMアプリケーションの評価の実践と課題 ~PharmaXにおける今後の展望~
pharma_x_tech
2
160
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
年間一億円削減した時系列データベースのアーキテクチャ改善~不確実性の高いプロジェクトへの挑戦~
lycorptech_jp
PRO
3
2.9k
地理情報とAPIのトレンド
nagix
0
160
Featured
See All Featured
Statistics for Hackers
jakevdp
792
220k
Optimizing for Happiness
mojombo
373
69k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
It's Worth the Effort
3n
181
27k
Infographics Made Easy
chrislema
238
18k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Code Reviewing Like a Champion
maltzj
517
39k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
We Have a Design System, Now What?
morganepeng
46
7k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
In The Pink: A Labor of Love
frogandcode
139
22k
Transcript
Git & GitHub ษڧձ ~ GitͱGitHubͰ৭ʑḿΔͧ~
Gitͱ͔ • Βͳ͍ • ڵຯແ͍ • ͬͯΔ • ͬͨࣄ͋Δ •
ͬͺMercurial or BazzarͩΑͶʂ
GitHubͱ͔ • Βͳ͍ • ڵຯແ͍ • ͬͯΔ • ͬͨࣄ͋Δ •
ͬͺBitbucketͩΑͶʂ
·ͣGitͷྑ͍ॴ • ಠΓͰେৎʂ • Ωϝࡉ͔ͳίϛοτ→Ҏલͷঢ়ଶʹࡉ͔͘ΕΔʂ • औΓ͋͑ͣίϛοτͯ͠ɺཤྺͷमਖ਼͕؆୯ʹͰ͖Δ • BranchͷΓ͢͞ɾΓସ͑͢͞ •
୭͕ͲΜͳͷΛίϛοτ͔͕͍ͨ͢͠͠→ॏཁʂ
࣍GitHubͷྑ͍ॴ • OSSͷొ͕ͬ͛͑͢ଟ͍Αʂ • ༗໊ॴͷOSSͷίϯτϦϏϡʔλʔίϛολʔເ͡Όͳ͍ • issue & wikiͰϓϩδΣΫτཧόονϦ •
Gistͱ͔ͷपลπʔϧ͕ॆ࣮ͯ͠ΔΑ • ωοτ͑͋͞ΕͲͷPCͰ։ൃଓߦͰ͖ΔΑ
Gitͷ֤OSͰͷΠϯετʔϧ • Windows • MsysGit • Mac • Gitެࣜ •
Homebrew / MacPorts
GitΛ͍͡ΊΔલʹ… • ݁ߏλʔϛφϧΤϛϡϨʔλʔ(௨ শɿࠇ͍ը໘)͕ඞཁʹͳΓ·͢ɻ • ͜ΕΛػʹσβΠφʔ or ϑϩϯτΤ ϯυͷਓͪΐͬͱ͍ͨ͠ํΛ֮͑ ·͠ΐ͏
• ͪͳΈʹMacͩͱྑ͍GUIϑϩϯτΤ ϯυ͕͋ΔΜͰ͚͢ͲͶ(GitHub for Macͱ͔SourceTreeͱ͔Towerͱ͔)
ͱ͍͏ࣄͰcommand֮͑Α͏ͥ • ͱݴ͑ɺࠓճͦΜͳʹ͍·ͤΜ • cd / mkdir / pwd /
ls / touch / (ssh- keygen) / ͪΖΜgit • Ҏ্͘Β͍͔͠Θͳ͍Ͱ͢ • ҙຯͱ͔ಇ͖ͳΜ͔…→→→→→ • ͦΕ͔ɺ-h or --help or man command
ॳΊͯͷGit ͔ͬ͜ΒɺϥΠϒίʔσΟϯάͬͭʔ͔ɺϥΠϒλʔϛφϧ
gitίϚϯυ͕ϫΧϯω • git init • gitͷॳظԽɻ͜ΕͰɺ֘σΟϨ ΫτϦΛgitͰཧ • git add
• gitͰcommit͢ΔϑΝΠϧΛࢦఆ • git status • gitͷঢ়ଶΛݟΔ • git commit • gitʹcommitͯ͠มߋΛཧ͢Δ • Ͷɺ؆୯Ͱ͠ΐʁ
͋Εʁίϛοτͪ͠Ό͏ͷʁ • ࠜຊతʹSVNͱҧ͍·͢ • GitͰcommit = αʔόʔʹΞοϓͰແ͍Ͱ͢ • ͯɺ͡Ό͋GitͷcommitͬͯԿ͢ΔΜʁ
͜͜Ͱͪΐͬͱ͍͠આ໌ • git addมߋ(not ϑΝΠϧ)Λindex(εςʔδϯά)ʹొ͢Δ ίϚϯυͰ͢ • git commitaddͰొ͞ΕͨมߋΛ࣮ࡍʹϑΝΠϧมߋͨ͠ ཤྺͱͯ͠ొ͢ΔίϚϯυͰ͢
ॳΊͯͷมߋ λΠτϧ͕͖ͬ͞ݟͨͷͱࣅͯΔͷܾͯ͠खΛൈ͍͔ͨΒ͡Όͳ͍Αɻ
͋ͨΒ͍͠gitίϚϯυ • git diff • git add ͢Δલͷ(εςʔδϯάલͷ) ࠓճͷϑΝΠϧͷมߋΛදࣔ •
git diff HEAD • git add ͢Δલͷ(εςʔδϯάલͷ) શͯͷϑΝΠϧͷมߋΛදࣔ • ͑ͬͱͲ͏͍͏ࣄʁ • HEADͱ͍͏ͷgitͰͷ࠷৽ίϛο τΛࢦ͢༻ޠʹͳΓ·͢ • addมߋঢ়ଶͷొͳͷͰɺී௨ ͷdiffͦͷ࣌ͷมߋͷΈදࣔ͠ ͯɺHEADʹ͚ΔͱࠓἬͷcommit લͷมߋΛදࣔ͢Δͱ͍͏ҧ͍ ͕͋Γ·͢ • ͪͳΈʹHEADଞͰ༻
͏গ͍͠͠આ໌ • มߋͱ͔ݴͬͯ·͕͢gitҎԼͷ3ͭͷঢ়ଶΛૢ࡞ͯ͠มߋΛ ه͠·͢ • Working directory • Staging area
• Repository
Working directory • ී௨ʹExploreͱ͔FinderͰݟΒΕΔϑΝΠϧɾσΟϨΫτϦ • ීஈ࡞ۀ͢Δͷʹͪ͜ΒΛΠδΓ·͢Ͷ(ͨΓલ) • ͱݴ͑ɺ͜Εgit͔ΒݟΔͱ͋Δcommit࣌ͰͷνΣοΫΞ τͰ͢
Staging area • ͖͔ͬ͞Βgit addͰεςʔδϯάͱ͔ݴͬͯͨͷίϨ • ͜ΕWorking directoryͰͷมߋͳΜ͔Λ͑Δॴ • git
commit͢Δ࣌ʹ͔͜͜Βมߋ͕gitʹΘΔ • ී௨࣮ମ͕ແ͍(Α͏ʹݟ͑Δ)
Repository • ͿͬͪΌ͚ɺgitͷ৺ଁ෦ɻ͜Εແ͍ͱgit͕ࢮΜ͡Ό͏ʂ • ࠓἬͷมߋͷཤྺͱ͔ͦͷଞॾʑೖͬͯΔDBΈ͍ͨͳͷ • GitHubͷRepository͜Εͱશ͘มΘΓ·ͤΜ • ͳͷͰɺGitHub͔Βclone͖ͯͨ͠ͷ͕શͯ͑ΔΜͰ͢Ͷ
ϒϥϯνͱ͔Ͷʔͷʁ • ͋Δʹܾ·ͬͯΜͩΖɺϰΥέ • gitͷϒϥϯνͱ͔λάsvnͷ200ഒ͍͍͢Ͱ͢(ࣾൺ) • ෳਓͰ͏߹ɺΨΠυϥΠϯ͕ཉ͍͠Ͱ͢
ॳΊͯͷϒϥϯν ࣈ໘Ұॹ͚ͩͲɺேன݉༻ͷ৯ࣄͷࣄ͡Όͳ͍Α
͞Βʹ͋ͨΒ͍͠gitίϚϯυ • git branch • ݟͯͷ௨ΓϒϥϯνΛ࡞ΔίϚϯ υ • git checkout
• svnͩͱϦϞʔτ͔Βιʔε࣋ͬͯ ͘ΔίϚϯυ͚ͩͲɺgitͰϦϙ δτϦ͔ΒͳΜͰϩʔΧϧOK • ଞʹgit tagͱ͔͋Γ·͢ • tagv1.0ͱ͔ίϛοτཤྺͷதͷ ϒοΫϚʔΫΈ͍ͨͳػೳ
͋Εɺ͜ΕͰઆ໌ऴΘΓͩΘ • gitͷجຊతͳ͍ํ࣮Ҏ্ͷ܁Γฦͩͬͨ͠Γ͠·͢ • ͳͷͰɺ͜͜Ͱgitͷ͍ํͷઆ໌ऴΘΓ • ͪΖΜɺgitͷ͍ํͱ͔ίϚϯυͬͱ৭ʑͱ͋Γ·͢ • ࠓઆ໌͠ͳ͍ͷɺάάͬͯͩ͋͘͠ •
࣮Pro GitͬͯຊͷWeb൛͕͋ΔΜͰɺͦΕͰશ෦ղܾ…
͔͜͜ΒϋΠύʔGitHubλΠϜ • ͳͷͰ͕͢ɺ·͋ΞΧϯτ࡞ͬͨΓඞཁͰ͢ • جຊແྉͰ͢ • Ψνϟͱ͔ίϯϓΨνϟͱ͔ແ͍Ͱ͢
ͦͦGitHubԿͰ͖Δͷʁ • GitHubࣗମGitઐ༻ͷϗεςΟϯάαʔϏε • ͳͷͰɺࣗͰ࡞ͨ͠ίʔυͷཧͱ͔ • ଞਓͷϓϩδΣΫτΛforkͯ͠վͨ͠Γͱ͔ • forkͨ͠ͷΛݩͷϓϩδΣΫτʹpull requestͨ͠Γͱ͔
• ͦΜͳࣄͯͨ͠ΒɺϓϩδΣΫτͷίϛολʔʹͳΕΔ͔
ͯ͞ɺͬͯΈ·ͬ͠ΐ͍ ͬͺΓɺϥΠϒλʔϛφϧ
·ʔͨɺ৽͍͠ίϚϯυ͕ • git remote • ϨϙδτϦΛஔ͘ॴΛࢦఆ͢Δ (ෳՄ) • git push
• ϩʔΧϧͷϦϙδτϦͷcommitΛ ϦϞʔτͷϦϙδτϦʹΞοϓ͠ ͯಉظΛऔΔ • git pull • git pushͷٯͰɺϦϞʔτͷϦϙ δτϦͷcommitΛϩʔΧϧͷϦ ϙδτϦʹಉظͤ͞Δ • ϩʔΧϧͱϦϞʔτͷΓऔΓ جຊɺpush & pullͰେৎ
࣭͋Γ·͔͢ʁ
࠷ޙʹ • ͜ͷઆ໌͕ͬͭΓͱ؆୯ʹͨ͠ͳΜͰɺڵຯ͋Δਓࣗ ͰwebͰௐͨΓɺຊಡΜͩΓͯͩ͋͘͠͠ • ؒҧͬͨઆ໌ͯͨ͠Βਖ਼εϚϯ • GitHubͷϚείοτͷOctocat͕ՄѪ͍ͷͰੜ͖Δͷ͕πϥ͍ • http://octodex.github.com/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠