Y E S , Y O U C A N G I T !
I N T R O D U C T I O N T O G I T A N D G I T H U B
Carol Willing
@willingcarol
GitHub: willingc
W R I T E S P E A K C O D E
J U N E 1 7 , 2 0 1 6
Slide 2
Slide 2 text
– M A RY O L I V E R
“It’s not a competition, it’s a doorway.”
Slide 3
Slide 3 text
C H AT T I N G
W I T H F R I E N D S
• git
• a tool
• puts you in charge of
source files
• GitHub
• a service
• sharing and collaboration
Slide 4
Slide 4 text
C A L M
Slide 5
Slide 5 text
N A M I N G P L A C E S
L O C A L ( Y O U A R E H E R E ) , O R I G I N , U P S T R E A M
Slide 6
Slide 6 text
L O C A L
( Y O U A R E H E R E )
O R I G I N
( Y O U I N T H E C L O U D )
U P S T R E A M
( S O M E W H E R E E L S E I N T H E C L O U D )
Slide 7
Slide 7 text
L O C A L
( g i t )
O R I G I N
( y o u o n G i t H u b )
U P S T R E A M
( o p e n s o u rc e p ro j e c t o n G i t H u b )
Slide 8
Slide 8 text
L O C A L
( g i t )
O R I G I N
( y o u o n G i t H u b )
U P S T R E A M
( o p e n s o u rc e p ro j e c t o n G i t H u b )
remote
Slide 9
Slide 9 text
P E A C E F U L
Slide 10
Slide 10 text
G E T T I N G S TA R T E D
S E T T I N G U P T O C O N T R I B U T E T O A N O P E N S O U R C E P R O J E C T
Slide 11
Slide 11 text
Fork
an open source project
Fork
Copies source from
upstream to origin
Slide 12
Slide 12 text
Fork
an open source project
O R I G I N
( y o u o n G i t H u b )
U P S T R E A M
( o p e n s o u rc e p ro j e c t o n G i t H u b )
Click
Slide 13
Slide 13 text
Clone
your fork of an open source project
to your local computer
git clone
git status
git remote -v
Slide 14
Slide 14 text
Add a remote
Let’s create a nickname of the open source project.
upstream sounds like a good nickname.
git remote -v
git remote add upstream
git remote -v
Slide 15
Slide 15 text
Fork
an open source project
Clone
your fork
of an open source project
~/myprojects/wsc-music
https://github.com//wsc-music
https://github.com/gentlecodegarden/wsc-music
R E V I E W
Slide 16
Slide 16 text
C O N F I D E N T
Slide 17
Slide 17 text
C R E AT I N G
L E T ’ S M A K E S O M E T H I N G F O R T H E P R O J E C T
Slide 18
Slide 18 text
fetch, rebase, push
my workflow for keeping things updated
git fetch upstream
git rebase upstream/master
git push origin master
Slide 19
Slide 19 text
branch, checkout
A feature branch keeps your new contribution neat and tidy.
Doing work on a feature branch helps avoid merge headaches later.
git branch new-feature
git checkout new-feature
git checkout -b new-feature
Slide 20
Slide 20 text
git status
Pro tip: use it often.
git status
Slide 21
Slide 21 text
git add
Adds file(s) to the staging area to keep ready before committing changes.
Real world analogy: Boarding an airplane
git add
git status
Slide 22
Slide 22 text
git commit
Commit file(s) in the staging area to the repo history.
Real world analogy: Airplane takes off with all its passengers
git commit -m'Add commit message.'
git status
git log
Note: The commit exists in the local repo only at this point.
Slide 23
Slide 23 text
git push
Shares the local commit with a remote repo.
git push origin new-feature
Note: You must have "push" privileges to push to a remote repo.
Slide 24
Slide 24 text
Another feature
Update the local repo with upstream changes.
Create a new feature branch. Update the origin repo.
git checkout master
git checkout -b another-feature
git fetch upstream
git rebase upstream/master
git push origin another-feature
Slide 25
Slide 25 text
git add
git commit -m"Add commit message"
git status
git log
git fetch upstream
git rebase upstream/master
git push origin another-feature
• Add changed files to staging area of
local repo.
• Commit changed files to local branch
and repo.
• Update (fetch and rebase) the local repo
with any upstream changes.
• Push feature branch to the origin repo.
Another feature: add, commit, fetch, rebase, push
Slide 26
Slide 26 text
– A N O N Y M O U S W S C A L U M N I
“Wow! Write, Speak, Code changes lives.
Remember you can go at your pace, ask questions,
make mistakes, learn, and have fun too. Believe.”
Slide 27
Slide 27 text
C O N T R I B U T E
Y O U R I D E A S M A T T E R . S H A R E T H E M . S U B M I T A P U L L R E Q U E S T.
Slide 28
Slide 28 text
Fact: Some projects are more welcoming and encouraging than others.
Myth: Your talent, potential, and future success are defined by a maintainer’s
response to your pull request.
Fact: Your PR may be rejected.
Fact: You may need to make changes based on constructive review
comments.
Myth: Maintainers are entitled to belittle a pull request or be crummy to you.
Fact: It’s not you. It’s them. And their loss. Find another project that values
your contribution.
L E T ’ S M A K E A P U L L R E Q U E S T
Slide 29
Slide 29 text
P re s s T h e P u l l R e q u e s t B u t t o n
C O N T R I B U T E A P R
Slide 30
Slide 30 text
Wr i t e A M e s s a g e A n d S u b m i t
C O N T R I B U T E A P R
Slide 31
Slide 31 text
T h e S u b m i t t e d P u l l R e q u e s t
C O N T R I B U T E A P R
Slide 32
Slide 32 text
P R O U D
Slide 33
Slide 33 text
P a t i e n c e . M a i n t a i n e r c o m m e n t s o n P R .
M A I N TA I N E R R E V I E W S T H E P R
Slide 34
Slide 34 text
C o n g r a t u l a t i o n s O n Yo u r C o n t r i b u t i o n !
M A I N TA I N E R M E R G E S T H E P R
Slide 35
Slide 35 text
Y E S , Y O U C A N G I T !
Y O U D I D I T !
Slide 36
Slide 36 text
Thank you.
P H O T O S :
C A R O L W I L L I N G , L I N N E A W I L L I N G
Slide 37
Slide 37 text
Y E S , Y O U C A N G I T !
I N T R O D U C T I O N T O G I T A N D G I T H U B
Carol Willing
@willingcarol
GitHub: willingc
W R I T E S P E A K C O D E
J U N E 1 7 , 2 0 1 6