Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
はじめてのGit #gitkyoto
Hisateru Tanaka
February 16, 2013
Technology
10
2.6k
はじめてのGit #gitkyoto
Gitのゆるめな勉強会
ワークショップ進行スライド
Hisateru Tanaka
February 16, 2013
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
7
6.4k
まんがのかきかた
tanakahisateru
8
480
10秒で衝突するUUIDの作り方
tanakahisateru
30
30k
これならしんどくないGit運用の考え方
tanakahisateru
21
5.2k
abstract は恥だが役に立つ
tanakahisateru
0
17k
プログラマーって どんな人? -- 牛乳と卵で理解するプログラマーという人種
tanakahisateru
100
53k
PHP-FIGのHTTP処理標準の設計はなぜPSR-7/15/17になったのか
tanakahisateru
9
4k
誰かフィクスチャ書いてくれるんなら俺もテスト書くわ
tanakahisateru
5
1.7k
それできみ、 そのSOLIDとやらは なんの役に立つのかね ~オブジェクト指向の原則 パッケージ編~
tanakahisateru
6
2k
Other Decks in Technology
See All in Technology
Oktaの管理者権限を適切に移譲してみた
shimosyan
2
260
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
270
OpenShiftでスポットVMを使おう.pdf
jpishikawa
1
260
Periodic Multi-Agent Path Planning
hziwara
0
110
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
140
ChatGPT for Hacking
anugrahsr
0
4.1k
「一通りできるようになった」その先の話
hitomi___kt
0
110
創業1年目のスタートアップでAWSコストを抑えるために取り組んでいること / How to Keep AWS Costs Down at a Startup
yuj1osm
3
2k
DNS権威サーバのクラウドサービス向けに行われた攻撃および対策 / DNS Pseudo-Random Subdomain Attack and mitigations
kazeburo
5
1.2k
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
230
2年で10→70人へ! スタートアップの 情報セキュリティ課題と施策
miekobayashi
1
300
SRE Lounge 2023/SRE Lounge 2023
lmi
0
140
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
221
17k
Producing Creativity
orderedlist
PRO
335
38k
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
Happy Clients
brianwarren
90
5.8k
Agile that works and the tools we love
rasmusluckow
320
20k
Mobile First: as difficult as doing things right
swwweet
213
7.8k
Robots, Beer and Maslow
schacon
154
7.3k
Facilitating Awesome Meetings
lara
33
4.6k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
Into the Great Unknown - MozCon
thekraken
2
280
Faster Mobile Websites
deanohume
295
29k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
Transcript
͡ΊͯͷGit ͨͿΜؔͰ͍ͪΜΏΔ͍Gitೖ
ͨͳ͔ͻͯ͞Δ @tanakahisateru Pinoco developer js-markdown-extra maintainer PHPTAL contributor Firebug translation
contributor Yii framework user ...and more OSS experienced
Կऀ͔ͱ͍͏ΛΘ ͔Γ͍͢ͱ͜Ͱ ͍͜ΕͰࠓͬͨਓ͕୭ͩͬ ͔ͨΕͳ͘ͳΓ·ͨ͠
ͦΜͳGitͷ͍͢͝ਓ͡Όͳ͍Ͱ͢ɻ GitHubͰඞཁͳ࠷ݶͷ͔ࣝ͋͠Γ·ͤΜɻ Θ͔Βͳ͍͜ͱ͙͢άάΓ·͢ɻ GitଞਓͱͬͯφϯϘͰ͠ΐͬͯࢥ͍·͢ɻ Θͨ͠ͱGit
ਓʹGitΛڭ͑Δͱ͜͏ͳͬͨ લ৬ͰɺσβΠφʔ(ίʔμʔ)ͷಉ྅ΫϥΠΞϯτʹGit Λڭ͑ͯͬͯΒͬͯ·ͨ͠ɻ σβΠφʔʮ͜Εͳ͔ͬͨΒࣄͰ͖ͳ͍ʯͬͯதಟʹͳ Γ·ͨ͠ɻ ΫϥΠΞϯτͱͷΓͱΓ͕εϜʔζʹͳΓ·ͨ͠ɻ
ڭ͑ͳ͖ΌଛͩΑ͜Ε
͜ͷηογϣϯͰ ϗϯτͷೖ͔Βͪΐͬͱ͚ͩ౿ΈࠐΜͰ࢝Ί·͢ɻ Έͳ͞Μ͕৬ͳΓऔҾઌͳΓͰɺڭ͢ΔଆͷਓʹͳΔ͙ Β͍ͷதಟʹ͢Δͷ͕ඪͰ͢ɻ(ॳ৺ऀͱ͔ؔͳ͍Ͱ͢) ڭΘΒͳͯ͘Θ͔ͬͯΔਓɺڭ͑ํͷώϯτΛύΫͬͯ ͍ͩ͘͞ɻGitଞਓͱͬͯφϯϘͰ͢ɻ
όʔδϣϯཧͬͯ? ࣮Έͳ͞ΜɺͨͿΜ͢ͰʹόʔδϣϯཧΛ͍ͬͯΔͱ ࢥ͍·͢Αɻ ໊Λ͚ͭͯϑΥϧμΛόοΫΞοϓ͢ΔΞϨɻ
None
͜ͷΜ·ͩΔؾ͋Δ
ʮͪΐͬͱෳҊݟͤͯΑʯ ʮ͑ͬ...ʯ
ʮͬͺΓલͷલͷ͕ྑ͔ͬͨʯ (Δؾͳ͘ͳ͖ͬͯͯΔײ)
ʮͬͱϑΟοΫεҊͰ͖ͨ...όλοʯ
ʮͬͦ͘͞Ͱѱ͍Μ͚ͩͲ͕͠...ʯ (นυϯͰ͢ΑͶ)
ޙ
Ͳͷࢠ͕Ͳͷࢠ͔͠Β...?
ख࡞ۀͷ᠘ ਓؒαϘΔ/যΔ/ؒҧ͑Δɻ ϑΥϧμͷલޙؔʹอূ͕ͳ͍ɻ ୭͕ԿΛͨ݁͠Ռͳͷ͔Θ͔Βͳ͍ɻ ϋʔυσΟεΫʹ΄ͱΜͲಉ͡༰ͷϑΥϧμͰ͖ͯɺ ͍͢͝ૣ͞Ͱ༰ྔΛѹഭͯ͘͠Δɻ
ͦΜͳ͋ͳͨ GitΛ͏ͱ
͜͏ͳΓ·͢
͞Βʹ͜͏ͳΓ·͢
ϑΥϧμͱͷ͕͍ͪ ୭͕ɺ͍ͭɺԿΛมߋͨ͠ͷ͔ཤྺʹΔɻ Ͳͷมߋ͕ͲΕΛݩʹͨ͠ͷ͔ɺॱ൪Λؒҧ͑ͳ͍ɻ ਖ਼ࣜͳ࠷৽൛͕Θ͔Δͱ͍͏େࣄ͞ɻ มߋใ͚ͩΛอଘ → ϋʔυσΟεΫΛѹഭ͠ͳ͍ɻ (ͳͷͰԕྀͳ͘όοΫΞοϓͰ͖Δ)
Subversion < Git ॳ৺ऀʹ(ͦͯ͠ଟকདྷͣͬͱ)Git͕Φεεϝɻ αʔόͷ४උ͕·ͩͰ࡞ۀΛ࢝ΊΒΕΔɻ FinderͰউखʹҠಈ/আ/໊લมߋΛͯ͠յΕͳ͍ɻ มߋཤྺͷࢀর͕ͱ͍ͯɻ ϓϥάΠϯ͕ͳ͍ͷͰਓʹΑͬͯػೳͷ͕ࠩग़ͳ͍ɻ (͜ΕMercurialʹର͢ΔϝϦοτ)
Ͳ͏ͤGitඞཁ
ΈΜͳGitHub ͬͱ͋ΔΑ
ͬͯΈΑ͏
Πϯετʔϧ ࠷৽ͷXcodeΛ͍ͬͯΔ ਓ͏ೖ͍ͬͯ·͢ɻ ͳ͍ਓͪ͜Β http://git-scm.com/
Ͱɺ࣍...
None
ͬͯɺ͜Θ͘ͳ͍͔Β
͜Ε͔ΒΖ͏ͱͯ͠Δ͜ͱ ʮGitίϚϯυͩʯͱ͍͏͜ͱΛͬͯΒ͍·͢ɻ ίϚϯυΛଧͪࠐΈͳ͕Β༻ޠΛ͓΅͑·͠ΐ͏ɻ ࣦഊͯ͠େৎɺతૢ࡞͡Όͳͯ͘ཧղͰ͢ɻ ֓೦Λཧղ͔ͯ͠ΒGUIɻ ͦͷͱ͖͏ɺίϚϯυΕ͍͍ͯͯɻ
< \コワクナイカラ/
͏͖͝·͔͢
ࣗͷ໊લΛઃఆ͠Α͏
࡞ۀऀͷ໊લࣗݾਃࠂͰ͢ɻ GitࣗͰউखʹ࢝ΊͨΓผͷαʔόʹҾӽͨ͠ΓͰ͖ΔͷͰɺ ୭͕࡞ۀ͔ͨ͠ͱ͍͏໊લαʔόͷೝূͱશʹผͳͷͰ͢ɻ
͜ͷ࿅शͰ͏ ιʔείʔυΛ...
http://www.initializr.com/ ύΫΓ·͢Ͷ
IEͱ͔Faviconͱ͔ΦϑͰ
μϯϩʔυ&ల։
͜Ε͕ॳ൛Ͱ͢
None
࡞ۀ͢ΔϑΥϧμΛ։͘ cd[εϖʔε]ͷ͋ͱɺλʔϛφϧʹ ϑΥϧμΛυϩοϓ͠·͢ɻ
͍·։͖·ͨ͠
ݱࡏλʔϛφϧͰ։͍͍ͯΔϑΥϧμΛʮΧ ϨϯτσΟϨΫτϦʯͱݴ͍·͢ɻ cd ͷޙʹύεΛࢦఆ͢ΔͱɺΧϨϯτσΟϨ ΫτϦΛม͑Δ͜ͱ͕Ͱ͖·͢ɻ ΧϨϯτσΟϨΫτϦͷ֬ೝ pwd Ͱ͢ɻ
ϗϯτʹ߹ͬͯΔ?
͜ͷΜେৎͰ͔͢ʔ
͍Α͍ΑGitͰ͢Αʔ
git init
.git=ϩʔΧϧϦϙδτϦ
ϦϙδτϦ=ೖΕ .git ͕ফ͑ΔͱԿͳ͔ͬͨ͜ͱʹͳΔɻ શ෦Γ͍ͨ͠ͱ͖ rm -rf .git (͋Δ͍ৄ͍͠ਓʹͬͦ͜Γฉ͖·͠ΐ͏)
git status
Untracked files = ·ͩཧ͍ͯ͠ͳ͍ϑΝΠ ϧ͕͜Ε͚ͩ͋Δͱ͍͏͜ͱɻ git add Λ͑ͱݴΘΕ͍ͯ·͢Ͷɻ
git add
add = ίϛοτ(͋ͱͰݴ͍·͢)͢ΔϦετʹϑΝ ΠϧՃ͢Δͱ͍͏ҙຯͰ add Ͱ͢ɻ ͜ͷૢ࡞Λεςʔδͱݴ͍·͢ɻ όʔδϣϯཧͰͬͱେࣄͳૢ࡞ɺίϛοτ ͷ४උͰ͢ɻ ͪΐ͏ͲɺFinderͰγϑτΩʔΛԡ͠ͳ͕ΒϑΝΠ
ϧΛϙνϙν͢ΔΑ͏ͳͷͰ͢ɻ
͔Βͷ→ git status
git status ͷ݁Ռ͕ Changes to be committed: ͱ͍͏ϦετʹͳΓ·ͨ͠ɻ ͍Α͍Α͕࣍ॳΊͯͷίϛοτͰ͢ɻ
git commit -m “...”
ॳճίϛοτ͓ΊͰͱ͏͍͟͝·͢ɻίϛοτ όʔδϣϯཧͰͬͱॏཁͳػೳͰ͢ɻ બΜͩϑΝΠϧΛ .git ϑΥϧμͷதʹόοΫΞ οϓίϐʔͨ͠ΠϝʔδͰ͢ɻ ֤ίϛοτʹɺ࡞ۀऀͷ໊લɺίϛοτͷ ࣌ɺϝοηʔδ͕ඞͣΓ·͢ɻ
-m ͳ͠Ͱ git commit ͱͯ͠͠·͍ɺͳʹ͕ ى͔ͬͨ͜Θ͔Βͳ͍ਓɺۙ͘ͷৄͦ͠͏ ͳਓʹฉ͍͍ͯͩ͘͞ɻ Θ͔Δਓͦͷ··ଓ͚ɺ:wq Ͱऴྃͨ͠Β ͍͍ͱࢥ͍·͢ɻ
Θ͔Βͳ͍ਓGUIΛ͏·ͰͬͯͶɻ
git status ...? → git log ...!
git status nothing to commit (working directory id clean)ͱݴ͍ͬͯ·͢ɻ࠷ޙͷίϛ
οτ͔Β·ͩมߋ͕ͳ͍ͱ͍͏ҙຯͰ͢ɻ git log ͰաڈͷίϛοτΛࢀরͰ͖·͢ɻ ίϛοτʹ 00e8ac1be367fb350... ͱ͍͏ID͕ ͍͍ͯΔ͜ͱ͕Θ͔Γ·͢ɻ͜ͷίϛοτͷϢ χʔΫͳཧ൪߸ͰɺΘΓͱॏཁͰ͢ɻ
৺ͳΒ git log --stat
͠ .DS_Store ͰάνάνݴΘΕΔਓ...
.gitignore ͱ͍͏ϑΝΠϧʹ
.DS_Store ͱॻ͖·͢
.gitignore = git + ignore (ແࢹ) ແࢹ͢ΔϑΝΠϧ໊ύεͷύλʔϯΛॻ͘
͜͜·Ͱͷ·ͱΊ git init git status git add <file/folder> git commit
-m “message” git log .gitignore
Ή͔͍ͣ͠ͻͱʔ
ͦ͏Ͱ͢Ͷ...
༊͠ิॆ͠ͱ͖·͢
͔͜͜Β໘ന͘ ͳΔΑɻ index.htmlʹ มߋൃੜɻ
git status
git diff
git commit -a -m “...”
git commit -a มߋ͞ΕͨϑΝΠϧΛͯ͢ add ͔ͯ͠Βίϛοτͱ͍͏ҙຯͰ͢ɻ git add Ͱεςʔδ͔ͯ͠Β git
commit ͢Δ ͷͱಉ͡Ͱ͢ɻ
git log
ϩάͷ݁Ռ͕2ͭʹͳΓ·ͨ͠ɻ ʮιʔεΛมߋͯ֬͠ೝɾίϛοτʯΛࣗ༝ ʹͬͯΈ·͠ΐ͏ɻ
࡞ۀ͕۠ΕͨΒ͙͢ʹίϛοτ͠·͠ΐ ͏ɻ ࠩอଘͳͷͰ༰ྔ৯͍·ͤΜɻԕྀͳ͘ ͲΜͲΜΓ·͠ΐ͏ɻ(※ Photoshopผ) සͷ҆ɺ1ߦͷϝοηʔδͰҙຯΛද ͤΔఔͷมߋηοτͰ͢ɻ
͜͜·Ͱͷ·ͱΊ git status git diff Ͱঢ়ଶΛ֬ೝͭͭ͠... มߋ → ίϛοτ
→ มߋ → ίϛοτ → ... ͘͜͜͠ͳ͍Ͱ͢Ͷɻ
ͭ͗ɺͪΐͬͱ͍͠ʹͳΓ·͢ɻ
< \コワクナイカラ/
HTMLͷߋ৽Λ͠ͳ͕Β ཪͰίπίπCSSΛม͍͑ͨ
ϒϥϯν
git branch css-coding git checkout css-coding
css-coding ͱ͍͏໊લͷϒϥϯνΛ࡞Γɺϒ ϥϯνΛΓସ͑·ͨ͠ɻ ׳Ε͍ͯΔਓ git checkout -b css-coding Ͱɺ࡞ͱΓସ͑Λಉ࣌ʹͰ͖·͢ɻ
git branch (ύϥϝʔλͳ͠)
ϒϥϯν͕2ͭ͋Δ͜ͱɺࠓͷϒϥϯν͕ css-codingͩͱ͍͏͜ͱ͕Θ͔Γ·͢ɻ master = ࠷ॳ͔Β͋ΔϝΠϯͷϒϥϯν
css-coding ϒϥϯνͰɺ css/main.css Λॻ͖͑ɻ
commit → log
H1 HENKOU → CSS PINK ͱ͍͏มߋͷྲྀΕ Ͱͨ͠Ͷɻ͜ΕΛԱ͓͍͍͑ͯͯͩ͘͞ɻ (ਓʹΑͬͯҧ͏͔͠Ε·ͤΜ) ͜͜ͰɺCSSͷ࡞ۀΛΊͯɺHTML͚ͩม ߋ͢Δ࡞ۀͷྲྀΕʹΓ·͠ΐ͏ɻ
git checkout master
masterϒϥϯνͰɺ࠷ޙͷίϛοτ͕·ͩ H1 HENKOU ͷ··Ͱ͢ɻͭ·Γ...
ͱͲ͓Γ
Կࣄͳ͔ͬͨ ͔ͷΑ͏ʹ index.html Λॻ͖͑ͯ...
commit → log
H1 HENKOU → KIJI MIDASI ͱ͍͏ྲྀΕͰ ίϛοτ͕ͭͳ͕Γ·ͨ͠ɻ masterϒϥϯνͰɺCSSؔͷίϛοτ͕ ͳ͔ͬͨ͜ͱʹͳ͍ͬͯ·͢ɻ
ผϑΥϧμ࡞ۀͷΠϝʔδ master css-coding
branchͱ git branch css-coding css-coding
checkoutͱ master git checkout master ࡞ۀϑΥϧμ
git log --oneline --graph --all
͔ͨ͠ʹίϛοτͷཤྺ͕ذ͍ͯ͠·͢ɻ ϒϥϯνผͷਓͱ࡞ۀ͢Δͱ͖༗ޮͰ͢ɻଞͷόʔδϣ ϯཧπʔϧͱGit͕ҧ͏ͷɺλάͳΜ͔ΑΓͣͬͱϒ ϥϯνͷ΄͏͕༻සߴ͍ͱ͍͏Ͱ͢ɻ Ͱͪΐͬͱ͍͠ͷͰɺޓ͍ʹಉ࣌ʹ৮Βͳ͍Α͏ Λ͔͚ͳ͕ΒͻͱͭͷϒϥϯνͰ͍͍ͬͯͰ͢ɻ ͨͩ͠ɺ͜ͷʮίϛοτͷذʯͱ͍͏֓೦ɺGitΛཧ ղͯ͠͏্ͰઈରʹΕ͍͚ͯ·ͤΜɻ
git merge -m “...” css-coding
ͨͬͨͻͱͭͷίϚϯυͰ ผͷϒϥϯνͷ࡞ۀ͕߹ମ!
mergeͱ master css-coding git merge
Ϛʔδɺ૬खͷϒϥϯν͔ΒมߋϑΝΠϧ ͚ͩΛऔΓग़ͯ͠ɺࣗͷϑΝΠϧΛ্ॻ͖ ͢ΔΠϝʔδɻ ͠ϒϥϯνؒͰಉ͡ϑΝΠϧΛมߋͯͨ͠ ΒɺͦΕΒ͕ڝ߹(ίϯϑϦΫτ)ͨ͠ঢ়ଶʹ ͳΓ·͢ɻ
͍·ίϯϑϦΫτʹ͍ͭͯઆ໌͢Δͷେม ͳͷͰɺͳΔ͘ى͜͞ͳ͍Α͏ʹͯͩ͘͠ ͍͞ɻ GitͰίϯϑϦΫτΛղফ͢Δͷɺ SubversionΑΓͣͬͱ؆୯ͳͷͰ҆͝৺Λɻ ͠ىͬͨ͜Βܦݧऀʹฉ͖·͠ΐ͏ɻ
ࢀߟ: Θ͔Γ͍͢ϒϥϯνͷ http://www.slideshare.net/ kotas/git-15276118
͜͜·Ͱͷ·ͱΊ git branch ϒϥϯν໊ git checkout ϒϥϯν໊ git branch git
log --oneline --graph --all git merge ϒϥϯν໊
Ή͔͍ͣ͠ͻͱʔ
ͦΖͦΖ·ͨ༊͠
͍͍ͪͪίϚϯυଧͭͷ ਖ਼͠ΜͲ͍
http://gitx.frim.nl/
͋͑ͯͬͱݹ͍GitXΛ͍·͢ɻ ͜͜·Ͱͷઆ໌ʹରԠ͢Δػೳ͔͠ͳ͍ͷ Ͱɺ͘͢͝Θ͔Γ͍͢ɻ ίϚϯυӡ༻ͱͷ૬ੑ͕͍͍Ͱ͢ɻ ίϚϯυ͕ۤखͳਓʹɺޙͰͬͱઌͷػ ೳ͕͋ΔπʔϧΛհ͠·͢ɻ
log, diff, branch
branch -d(আ), checkout
status, diff
add, checkout --(มߋΛΊΔػೳ)
commit + ΤσΟλ
͓·͚: λʔϛφϧ͖ͳΒ tig
վߦίʔυͷมߋ CRLF→LF จࣈίʔυͷมߋ SJIS→UTF-8 Πϯσϯτํͷมߋ λϒ→εϖʔε ઈର్தͰ͍͚ͬͯͳ͍͜ͱ
͜ΕΔͱɺϑΝΠϧͷͯ͢ͷߦ͕ॻ͖Θͬͨͱೝࣝ͞ Ε·͢ɻ ຊདྷͷมߋҙਤ͕Θ͔Βͳ͘ͳΓ·͢ɻ ΔͳΒૣ͍ஈ֊ͰɺશιʔεͷϑΥʔϚοτΛҰؾʹมߋ ͢ΔίϛοτΛ͠·͠ΐ͏ɻ ઈର్தͰ͍͚ͬͯͳ͍͜ͱ
< \コワクナイカラ/
͍Α͍ΑGitHub
https://github.com/
·ͩͷਓαΠϯΞοϓ
Welcome to social coding.
ެ։伴Λొ ެ։伴ೝূͱSSHͷઆ໌ল͖·͢ɻ ͣΓɺ~/.ssh ͋Γ·͔͢? open ~/.ssh id_rsa.pub ͕͋ΕOKɺͦΕΛ͍·͢ɻ ͳ͍ਓ͜ΕͰ࡞Γ·͢: ssh-keygen
-t rsa -C "
[email protected]
" ͢Ͱʹ͍࣋ͬͯΔਓྡͷਓΛखͬͯ͋͛·͠ΐ͏ɻ
͜͜ʹৄ͘͠ग़͍ͯ·͢: https://help.github.com/articles/ generating-ssh-keys
id_rsa.pub Ͱ͖ͨΒ... Ͱɺid_rsa.pubͷ༰Λ·Δ͝ͱίϐϖ͠·͠ΐ͏ɻ
ϦϙδτϦΛ࡞Ζ͏ ͜͜
Ͱ͖ͨ
͡Ίͯͷpush
⌘+R
git push origin master originͷϦϞʔτϦ ϙδτϦʹmasterϒϥϯνΛΞοϓϩʔυ͢ ΔΠϝʔδͰ͢ɻ -u ΦϓγϣϯɺҎ߱masterϒϥϯνͰ git
push ͚ͩͨ͠ͱ͖ɺσϑΥϧτͰoriginʹ push͢ΔΑ͏ʹͳΔͱ͍͏ඥ͚ɻ
push push
ͱ͜ΖͰ͜ͷEditͬͯ?
ฤूͰ͖ͪΌ͏!
ϝοηʔδ+ίϛοτ
git pull
git pull ϦϞʔτͷϦϙδτϦ͔ΒϩʔΧϧ ʹμϯϩʔυ͢ΔΠϝʔδɻ ͋ɺGitHubͷαΠτͰฤू͢Δͱɺಈ࡞֬ೝ Ͱ͖ͯͳ͍ιʔεͰίϛοτΛੵΉ͜ͱʹͳ ΔͷͰɺී௨μϝͰ͢Αɻ
pull pull
ϦϞʔτ͔Βpull͢Δ=μϯϩʔυͨ͠ͷΛແ໊ϒϥϯνͱ Έͳͯ͠ɺϚʔδ→ίϛοτΛ͍ͬͯΔɻ μϯϩʔυͯ͠Ϛʔδ͠ͳ͍pullΛfetchͱݴ͏ɻ pull = fetch + merge ͱʹ͔͘ɺ͍͖ͳΓϩʔΧϧͥΜͿ্ॻ͖Ͱͳ͍ɻ FTPͰམͱ͖ͯͨ͠ϑΝΠϧΛ͍͖ͳΓ্ॻ͖ͯ͠ࠔͬͨ͜ͱ...
͋Γ·͢ΑͶɻ pullͷҙ
ϦϞʔτͷ࠷৽ΑΓݹ͍ঢ়گʹੵΜͩίϛοτΛpush͢Δͷ ېࢭ͞Ε·͢ɻ ͳͷͰɺ·ͣϩʔΧϧʹpull͔ͯ͠Βɺ࡞ۀ→ίϛοτ →pushͷॱংΛकΓ·͠ΐ͏ɻ ଞͷਓ্͕͛ͨαʔόͷ࠷৽Λݹ͍ϑΝΠϧͰFTP্ॻ͖͠ ͯࠔͬͨ͜ͱ...͋Γ·͢ΑͶɻ pushͷҙ
͍͜͠ͷͰɺͱΓ͋͑ͣWeb੍࡞ͷݴ༿Ͱ͍͏ͱɺαʔ όͷΞοϓϩʔυͱαʔό͔ΒͷμϯϩʔυͰOKͰ͢ɻ ͨͩɺಥવͷ্ॻ͖Ͱେࣦഊ͠ͳ͍ஔ͕͍ͯΔͱ͍͏͜ ͱ͚ͩཧղ͍ͯͩ͘͠͞ɻ GitͰΤϥʔʹͳΔͱ͍͏ͱ͖ɺͦ͜͠Ͱࣦഊ͕ى͖ͳ͔ ͬͨΒɺͬͱͻͲ͍͜ͱ͕ى͍ͬͯͨ͜ɺͱ͍͏ՄೳੑΛ ͍Ͱ͘Ε͍ͯΔͱࢥ͍·͠ΐ͏ɻ Ή͔͍ͣ͠ͻͱʔ
ͱ͜ΖͰ͖ͬ͞ɺoriginʹʮmasterΛʯpush ͨ͠ͱݴ͍·ͨ͠ɻ
ͭ·Γ...GitHubʹ·ͩ css-coding ϒϥϯν ͕ͳ͍!!
git push origin css-coding
ϒϥϯνpushͰ͖ͨ
pushͱpullϒϥϯν͝ͱʹݸผͰ͢ɻ ͲΕΛpush/pull͢Δ͔Λҙࣝ͠·͠ΐ͏ɻ ݸผ͔ͩΒͱ͍ͬͯ༰ྔ͕ഒʹͳΔΘ͚Ͱ͋Γ·ͤ Μɻফඅ͢Δͷࠩͷྔ͚ͩͰ͢ɻ
ϩʔΧϧͷ࡞ۀσΟϨΫτϦΛআͯ͠ฏؾɻ ͜ΕͰαʔόʹશ෦͋ΔͷͰ
GitHubͷ͔͜͜Β
git clone ...
·͋ɺclone ͢Δͷ͍͍ͩͨଞਓͰ͢ɻ ్த͔Β࡞ۀʹࢀՃ͢Δਓɺgit init Ͱͳ ͘͜ͷ git clone ͔Βελʔτ͠·͢ɻ ͋ͱͰଞͷਓͱڞಉ࡞ۀͷ࿅श͠·͠ΐ͏ɻ
෮ݩͰ͖·ͨ͠
͍ʙΑ͔ͬͨΑ͔ͬ...
͓? img
: ۭϑΥϧμμϝ GitۭͷϑΥϧμΛཧͰ͖·ͤΜɻ͋͘·ͰϑΝΠϧͷมߋ ͷཧͳͷͰɻ ۭͬΆͷϑΥϧμΛҡ͍࣋ͨ͠߹ɺதʹԿ͔μϛʔͷϑΝΠ ϧΛೖΕ͍ͯͩ͘͞ɻ μϛʔϑΝΠϧ໊ empty, .gitkeep, .gitignore,
.htaccess ͳͲ͍ Ζ͍Ζͳश׳͕͋Γ·͢ɻ ͋·Γ৺͠ͳ࣮͕ͯ͋͘Δ͜ͱ·ΕͰ͢ɻ
ͪͳΈʹmasterҎ֎ͷϦϞʔτϒϥϯνΛ ϩʔΧϧʹ࿈Εͯ͘ΔͳΒ... git branch css-coding origin/css-coding
͜͜·Ͱͷ·ͱΊ git remote add ϦϙδτϦ໊ ΞυϨε git push -u ϦϙδτϦ໊
ϒϥϯν໊ git push (:ϒϥϯν͝ͱ) git pull git clone ΞυϨε ۭͷϑΥϧμແࢹ͞ΕΔ git branch ϒϥϯν໊ origin/ϒϥϯν໊
༊͠(ry
͓ͨͤ͠·ͨ͠ GUIͰ͢Α
http://rowanj.github.com/gitx/
GitXͷ͍͢͝൛
clone
remote/fetch/pull/push
͜Μͳ͜ͱ·Ͱ git branch css-... origin/css-...
GitXgitίϚϯυʹ࣮ͳUIͳͷͰɺίϚϯ υͰཧղͨ͠ਓ͕͍͍͢Ͱ͢ɻ ͜ͷUIࣗମ͕ʮGitͰͰ͖Δ͜ͱू(؆қ൛)ʯ ͋Γ͕ͪͳૢ࡞͕ͻͱͱ͓Γ͋ΔͷͰɺ͞Β ʹษڧ͢ΔϙΠϯτ͕ݟ͖͑ͯ·͢ɻ
·ͩ͜Ε͡Ό͍ʹ͍͘ ͱࢥͬͨΒɺϝΠϯͰ ͏πʔϧͬͱࣗʹ ߹͏ͷΛબͼ·͠ΐ͏ɻ
͜ΕͰΑ͏͘ ελʔτϥΠϯ
Ή͔͍ͣ͠ͻͱʔ
gitͷίϚϯυ Ή͔͍ͣ͠ͷʙ
None
gitͷίϚϯυମܥʮ͏ਓͷؾ࣋ͪʯͰ ͳ͘ʮ෦ઃܭͷࣄʯͰͰ͖͍ͯ·͢ɻ ࡞ͬͨਓͷؾ࣋ͪʹͳͬͨΒཧղͰ͖Δͱ͔ ແཧήʔɻ ͳͷͰ...
ࡉ͔͍ૢ࡞ํ๏Ε͔ͯ·͍·ͤΜɻ ༻ޠͱ֓೦ͱΈͷجຊΛΕͳ͍͜ͱ͕ॏཁͰ͢ɻ ཧղͯ͠͠·͑ɺGUIΛͬͨ΄͏͕ޮతͰ͢ɻ ίϚϯυΛΔͱɺGUIͷઆ໌ςΩετ͕ίϚϯυΦϓγϣ ϯͷԿΛࢦ͢ͷ͔ɺ૾Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ ͔ͩΒͦ͜
ͨͩ͠... ຊʹࠔͬͨͱ͖άάͬͯίϚϯυΛίϐϖͰ͖ΔΑ͏ʹ ͠ͱ͖·͠ΐ͏ɻ GUIͷૢ࡞खॱٕज़ϒϩάʹॻ͔Εʹ͍͘ɻ gitάάΕΔ! ←͜͜ॏཁ
͓ർΕ༷Ͱͨ͠