SLIDE 1 Become ¡an ¡Open ¡ Source ¡Contributor ¡
Beth ¡Tucker ¡Long ¡
SLIDE 2 Who ¡am ¡I? ¡ Beth ¡Tucker ¡Long ¡ ¡ ¡(@e3betht) ¡
- PHP ¡Developer ¡ ¡
- Stay-‑at-‑home ¡mom ¡
- User ¡group ¡leader ¡
- Mentor ¡& ¡ApprenKce ¡
¡
SLIDE 3 Audience ¡ParKcipaKon? ¡
- Completely ¡fine. ¡Ask ¡me ¡quesKons ¡any ¡Kme. ¡
SLIDE 4 ¡ ¡
CustomizaKon ¡
(Please, ¡be ¡honest) ¡
SLIDE 7 ¡ ¡
Permissions? ¡
SLIDE 13
You ¡Are ¡Not ¡Just ¡Free ¡Labor ¡
Improve ¡your ¡coding ¡skills ¡
SLIDE 14
Help ¡a ¡Project ¡That's ¡Helped ¡You ¡
Pay ¡it ¡forward ¡
SLIDE 15
It's ¡Not ¡Just ¡Helping ¡the ¡Project ¡
Improve ¡your ¡hireability ¡
SLIDE 16 You ¡Don’t ¡Have ¡to ¡Take ¡My ¡Word ¡For ¡It ¡
- h^ps://ma.^/2016/02/geeng-‑a-‑job-‑afer-‑coding-‑bootcamp/ ¡
- h^p://www.porgolioKps.co/your-‑resume-‑wont-‑get-‑you-‑
hired/ ¡ ¡
- h^p://www.pcworld.com/arKcle/2096660/hiring-‑managers-‑
advise-‑job-‑seekers-‑to-‑contribute-‑to-‑opensource-‑ projects.html ¡
- h^p://philipwalton.com/arKcles/how-‑to-‑find-‑qualified-‑
developers/ ¡ ¡
SLIDE 18
Download ¡the ¡Slides ¡
h^p://TreelineDesign.com/slides ¡
SLIDE 19 ¡ ¡
Geeng ¡Started ¡
SLIDE 20
Get ¡to ¡Know ¡GitHub ¡
h^p://www.GitHub.com ¡
SLIDE 21 GitHub.com ¡
- Read ¡about ¡features ¡
- Explore ¡repositories ¡
SLIDE 23
GitHub.com ¡
Create ¡an ¡account ¡on ¡GitHub.com ¡
SLIDE 25
Install ¡
h^p://git-‑scm.com/ downloads ¡
SLIDE 26
Setup ¡
h^ps://help.github.com/ arKcles/set-‑up-‑git/ ¡
SLIDE 27
GUI ¡
h^ps:// desktop.github.com/ ¡
SLIDE 28
If ¡You ¡Can't ¡Install ¡Git ¡
h^ps://guides.github.com/ acKviKes/hello-‑world/ ¡
SLIDE 30 Install ¡Git ¡
Install ¡and ¡set ¡up ¡Git ¡ ¡
- n ¡your ¡local ¡machine ¡
SLIDE 31 ¡ ¡
The ¡Basic ¡OSS ¡ ¡ Git ¡Process ¡
SLIDE 32 Find ¡the ¡Repository ¡on ¡GitHub ¡
- Go ¡to: ¡h^p://www.github.com ¡
- Log ¡in ¡
- Search ¡for ¡a ¡repository ¡
SLIDE 33
Search ¡Tip ¡
SLIDE 35
Find ¡This ¡Tutorial's ¡Repo ¡ Find ¡the ¡repository ¡I ¡ ¡ made ¡for ¡this ¡tutorial. ¡ ¡ ¡ ¡
SLIDE 36
Find ¡This ¡Tutorial's ¡Repo ¡ Find ¡the ¡repository ¡I ¡ ¡ made ¡for ¡this ¡tutorial. ¡ Repo: ¡oss-‑talk ¡ Owner: ¡e3betht ¡
SLIDE 37
Start ¡with ¡Repository ¡Guidelines ¡
README.md ¡ ¡ CONTRIBUTE.md ¡ ¡
SLIDE 38
Cloning ¡the ¡Repository ¡
SLIDE 39 Clone ¡the ¡Repository ¡
On ¡the ¡commandline: ¡ ¡
$ ¡git ¡clone ¡git@github.com:e3betht/oss-‑talk.git ¡
SLIDE 40
Fork ¡the ¡Repository ¡
SLIDE 41 Forking ¡the ¡Repository ¡
e3betht/oss-‑talk ¡ ¡ <your ¡name>/oss-‑talk ¡
forked ¡from ¡e3betht/oss-‑talk ¡
SLIDE 42 Set ¡Your ¡Remotes ¡
View ¡current ¡remotes: ¡ ¡
$ ¡git ¡remote ¡-‑v ¡
SLIDE 43 Default ¡Remotes ¡
View ¡current ¡remotes: ¡ ¡
- rigin ¡ ¡git@github.com:e3betht/oss-‑talk.git ¡(fetch) ¡
- rigin ¡ ¡git@github.com:e3betht/oss-‑talk.git ¡(push) ¡
SLIDE 44 Rename ¡Your ¡Remotes ¡
¡
$ ¡git ¡remote ¡rename ¡origin ¡<new ¡name> ¡
SLIDE 45 Add ¡a ¡New ¡Remote ¡
¡
$ ¡git ¡remote ¡add ¡<new ¡name> ¡<your ¡ forked ¡repo ¡URL> ¡
SLIDE 46 Updated ¡Remotes ¡
New ¡current ¡remotes: ¡ ¡
- ss-‑origin ¡ ¡git@github.com:e3betht/oss-‑talk.git ¡(fetch) ¡
- ss-‑origin ¡ ¡git@github.com:e3betht/oss-‑talk.git ¡(push) ¡
- ss-‑fork ¡ ¡git@github.com:name/oss-‑talk.git ¡(fetch) ¡
- ss-‑fork ¡ ¡git@github.com:name/oss-‑talk.git ¡(push) ¡
¡
SLIDE 48
Prepare ¡the ¡oss-‑talk ¡Repo ¡
Clone ¡and ¡fork ¡the ¡oss-‑talk ¡repo. ¡ Set ¡up ¡the ¡proper ¡remotes. ¡
SLIDE 49
Quick ¡Update ¡
$ ¡git ¡remote ¡update ¡
SLIDE 50 Create ¡Your ¡Branch ¡
$ ¡git ¡checkout ¡–b ¡<name> ¡origin/master ¡
SLIDE 51
Finding ¡Branches ¡
SLIDE 52 Create ¡Your ¡Branch ¡
$ ¡git ¡checkout ¡–b ¡<name> ¡origin/test ¡
SLIDE 53 Check ¡the ¡Status ¡
$ ¡git ¡status ¡ ¡
On ¡branch ¡setup ¡ Your ¡branch ¡is ¡up-‑to-‑date ¡with ¡'origin/master'. ¡ nothing ¡to ¡commit, ¡working ¡directory ¡clean ¡
SLIDE 54 Afer ¡Changes ¡
On ¡branch ¡setup ¡ Your ¡branch ¡is ¡up-‑to-‑date ¡with ¡'origin/setup'. ¡ Changes ¡not ¡staged ¡for ¡commit: ¡ ¡ ¡(use ¡"git ¡add ¡<file>..." ¡to ¡update ¡what ¡will ¡be ¡ committed) ¡ ¡ ¡(use ¡"git ¡checkout ¡-‑-‑ ¡<file>..." ¡to ¡discard ¡changes ¡ in ¡working ¡directory) ¡ ¡ ¡modified: ¡ ¡ ¡code/third.php ¡
SLIDE 56
Add ¡Your ¡File ¡
Create ¡a ¡branch ¡Ktled: ¡ add-‑student-‑<you> ¡ Create ¡a ¡PHP ¡Hello ¡World ¡script ¡in ¡the ¡ Students ¡directory ¡and ¡name ¡it: ¡ <you>.php ¡
SLIDE 57 Add ¡Files ¡
$ ¡git ¡add ¡<file> ¡
SLIDE 58 Commit ¡Files ¡
$ ¡git ¡commit ¡–m ¡"<message>" ¡
SLIDE 59 Double-‑check ¡for ¡Changes ¡
$ ¡git ¡remote ¡update ¡ $ ¡git ¡rebase ¡<origin>/<branch> ¡
SLIDE 60 Push ¡Your ¡Changes ¡
$ ¡git ¡push ¡-‑u ¡<your ¡remote> ¡<your ¡branch> ¡
SLIDE 61 Problem? ¡
$ ¡git ¡push ¡-‑f ¡-‑u ¡<your ¡remote> ¡<your ¡branch> ¡
SLIDE 63
Commit ¡Your ¡File ¡
Commit ¡your ¡Hello ¡World ¡file ¡with ¡ a ¡nice ¡commit ¡message. ¡
SLIDE 64
Pull ¡Request ¡
SLIDE 69
Issue ¡a ¡Pull ¡Request ¡(PR) ¡
Issue ¡a ¡PR ¡for ¡your ¡Hello ¡World ¡ file ¡with ¡a ¡nice ¡Ktle ¡and ¡message. ¡
SLIDE 70 ¡ ¡
Success!!! ¡
SLIDE 72
PR ¡History ¡
SLIDE 73 I ¡Want ¡to ¡Do ¡More! ¡
- README.md ¡or ¡CONTRIBUTE.md ¡
- Project ¡website ¡
- GitHub ¡Issues ¡
SLIDE 74
GitHub ¡Issues ¡
SLIDE 75
GitHub ¡Issues ¡
SLIDE 77
Fix ¡an ¡Issue ¡
Find ¡your ¡issue, ¡and ¡fix ¡it. ¡
SLIDE 78 ¡ ¡ Finding ¡a ¡Project ¡
SLIDE 79
Finding ¡a ¡Project ¡
Start ¡with ¡what ¡you ¡know ¡
SLIDE 80
Finding ¡a ¡Project ¡
Or ¡what ¡you ¡want ¡to ¡ know ¡
SLIDE 81 Browse ¡GitHub ¡
- Stars ¡
- Trending ¡
- Showcases ¡
SLIDE 82
Search ¡
SLIDE 83
Advanced ¡Search ¡
SLIDE 84
Advanced ¡Search ¡Gotcha ¡
SLIDE 86
What ¡a ¡Star! ¡
Find ¡the ¡PHP ¡ ¡ project ¡with ¡the ¡most ¡stars. ¡
SLIDE 87 ¡ ¡
Geeng ¡Help ¡
SLIDE 88 Geeng ¡Help ¡
- README.md ¡or ¡CONTRIBUTE.md ¡
- Forums ¡or ¡Stack ¡Overflow ¡
- Issue ¡or ¡PR ¡Comments ¡
- h^p://www.PHPMentoring.org ¡
- and… ¡
SLIDE 90 Installing ¡IRC ¡
- mIRC ¡(h^p://www.mirc.com/ ¡-‑ ¡Windows) ¡
- Pidgin ¡(h^ps://www.pidgin.im/ ¡-‑ ¡Windows, ¡Linux) ¡
- Adium ¡(h^ps://adium.im/ ¡-‑ ¡OS ¡X) ¡
- Textual ¡(h^ps://www.codeux.com/textual/ ¡-‑ ¡OS ¡X) ¡
- HexChat ¡(h^p://hexchat.github.io/ ¡-‑ ¡Windows, ¡OS ¡X, ¡
Unix ¡systems) ¡
SLIDE 92
EKque^e ¡
Running ¡an ¡open ¡source ¡ ¡ project ¡is ¡tough ¡work. ¡
SLIDE 93
EKque^e ¡
Be ¡polite ¡and ¡respecgul. ¡
SLIDE 94
EKque^e ¡
Follow ¡the ¡guidelines ¡carefully. ¡
SLIDE 95
EKque^e ¡
Ask ¡if ¡you ¡are ¡unsure. ¡
SLIDE 96
EKque^e ¡
Be ¡paKent. ¡
SLIDE 97
EKque^e ¡
Be ¡prepared. ¡
SLIDE 98
EKque^e ¡
Don't ¡take ¡it ¡personally. ¡
SLIDE 99
EKque^e ¡
Be ¡compassionate. ¡
SLIDE 100
EKque^e ¡
Say ¡thank ¡you. ¡
SLIDE 101 Find ¡Me ¡
¡
- Madison ¡PHP ¡User ¡Group ¡(Meetup) ¡ ¡
h^p://www.madisonphp.com ¡ ¡
- Slides ¡Available ¡on: ¡ ¡
h^p://www.TreelineDesign.com/slides ¡ ¡
SLIDE 102
Feedback ¡
h^ps://joind.in/talk/43a20 ¡ E-‑mail: ¡
Beth@TreelineDesign.com ¡ ¡
SLIDE 103 ¡ ¡
Final ¡Exercise ¡
SLIDE 104
Projects ¡are ¡WaiKng ¡
h^ps://github.com/php-‑ug/ ¡ ¡ and ¡ ¡ h^ps://github.com/joindin/ ¡ ¡